【剑指offer】二叉树中和为某一值的路径

问题就是如何解决在遍历中记录路径,没想到好法子~
copy一个,写的思路很清晰,很简洁。

public class Solution {
    private ArrayList<ArrayList<Integer>> list = new ArrayList<>();
    private ArrayList<Integer> line = new ArrayList<>();

    public ArrayList<ArrayList<Integer>> FindPath(TreeNode root, int target) {
        if (root == null || target < 0) {
            return list;
        }

        target -= root.val;
        line.add(root.val);
        if (target == 0 && root.left == null && root.right == null) {
            list.add(new ArrayList<>(line));
        }
        FindPath(root.left, target);
        FindPath(root.right, target);
        line.remove(line.size() - 1);
        return list;
    }
}
全部评论

相关推荐

一只乌鸦:这不才9月吗,26到明年毕业前能一直找啊,能拿下提前批,转正的,offer打牌的都是有两把刷子的,为什么非要跟他们比。如果别人是9本硕+金牌+好几段大厂实习呢?如果别人是双非通天代呢?如果别人是速通哥呢?,做好自己就行了,我们做不到他们一样提前杀死比赛,但晚点到终点也没啥关系吧
双非应该如何逆袭?
点赞 评论 收藏
分享
09-30 14:33
Python
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-16 01:46
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务