您的位置:首页 > 其它

二叉树中和为某一值的路径

2015-06-16 21:52 323 查看

二叉树中和为某一值的路径

题目描述

输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。

代码

[code]/*
public class TreeNode {
    int val = 0;
    TreeNode left = null;
    TreeNode right = null;

    public TreeNode(int val) {
        this.val = val;

    }

}
*/
import java.util.ArrayList;
public class Solution {

    ArrayList list=new ArrayList();
    ArrayList stack=new ArrayList();
    public ArrayList<ArrayList<Integer>> FindPath(TreeNode root,int target) {

       if(root==null) return list;
       return FindPath( root, target,0); 

    }
    public ArrayList<ArrayList<Integer>> FindPath(TreeNode root,
                          int target,

                          int sum) 
    {

         //前序遍历
         if(root!=null){
             //ele=new  ArrayList<Integer>();
             int val=root.val;
             sum+=val;
             boolean isleaf=(root.left==null&&root.right==null);
             stack.add(val);

             if(sum==target&&isleaf){

                 ArrayList path=new ArrayList();
                 for(int i=0;i<stack.size();i++){
                      path.add(stack.get(i));
                 }
                 list.add(path);

             }

             FindPath( root.left, target,sum);
             FindPath( root.right, target,sum);

             if(stack.size()>0){
                 stack.remove(stack.size()-1);
             }
             return list;
         }
         return null;
    }
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: