二叉树中和为某值的路径

//思路:回溯法(先序遍历+路径记录)
//关于回溯法的模板网上很多,大家可以去查一下

class Solution {
    LinkedList<List<Integer>> res = new LinkedList<>();
    LinkedList<Integer> path = new LinkedList<>(); 
    public List<List<Integer>> pathSum(TreeNode root, int sum) {
        recur(root, sum);
        return res;
    }
    //回溯法模板
    void recur(TreeNode root, int tar) {
        if(root == null) return;
        path.add(root.val);
        tar -= root.val;
        if(tar == 0 && root.left == null && root.right == null)
            res.add(new LinkedList(path));
        recur(root.left, tar);
        recur(root.right, tar);
        //撤销选择
        path.removeLast();
    }
}


上一篇:1.请实现一个函数,用来判断一棵二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。


下一篇:iOS开发小技巧--实现将图片保存到本地相册