分析

寻找满足指定值的路径集转换为二叉树的前序遍历(根-左-右)

使用回朔(递归)的方式实现

  
    /**
     * 
     * @param root TreeNode类 
     * @param sum int整型 
     * @return int整型ArrayList<ArrayList<>>
     */
    ArrayList<ArrayList<Integer>> res = new ArrayList<>();
    ArrayList<Integer> list = new ArrayList<Integer>();
    public ArrayList<ArrayList<Integer>> pathSum (TreeNode root, int sum) {  
		if(root == null)return res;
		dsf(root,sum,0);
    	return res;
	}
	public void dsf(TreeNode root, int sum,int count){
		//设置递归终止条件  
		if(root == null)return ; 
		list.add(root.val);
		count += root.val;
		if(root.left == null && root.right == null){
			if(count == sum)res.add(new ArrayList<>(list));
		}else{
		    dsf(root.left,sum,count);
			dsf(root.right,sum,count);
		}
		list.remove(list.size()-1);
	}