题解 | #二叉树中和为某一值的路径(二)#

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

http://www.nowcoder.com/practice/b736e784e3e34731af99065031301bca

dfs

1.要有明确的结束dfs的标志
2.回溯的时候,要恢复现场
import java.util.ArrayList;
/**
public class TreeNode {
    int val = 0;
    TreeNode left = null;
    TreeNode right = null;

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

    }

}
*/
public class Solution {
    public ArrayList<ArrayList<Integer>> FindPath(TreeNode root,int sum) {
        ArrayList<ArrayList<Integer>> ret = new ArrayList<>();
        if(root != null)
            dfs(root,sum,ret,new ArrayList<Integer>(),0);
        return ret;
    }
    public void dfs(TreeNode node,int sum,ArrayList<ArrayList<Integer>> ret,ArrayList<Integer> list,int cur){
        cur += node.val;
        list.add(node.val);
        if(cur == sum && node.left == null && node.right == null){
            ArrayList<Integer> ele = new ArrayList<>(list);
            ret.add(ele);
        }
        if(node.left != null){
            dfs(node.left,sum,ret,list,cur);
        }
        if(node.right != null){
            dfs(node.right,sum,ret,list,cur);
        }
        list.remove(list.size() - 1);
        cur -= node.val;
    }
}

全部评论

相关推荐

今天投了小鹏,收到了AI面,大概会问哪些啊?
期末一定及格:总共4个部分,心理测评、行测、然后就是问岗位、对岗位的理解、过往遇到了哪些难点怎么解决,很简单,没有什么特别专业的问题,都是一些综合素质相关的
小鹏汽车AI面6人在聊
点赞 评论 收藏
分享
头像 会员标识
05-26 10:24
门头沟学院 Java
qq乃乃好喝到咩噗茶:其实是对的,线上面试容易被人当野怪刷了
找工作时遇到的神仙HR
点赞 评论 收藏
分享
06-17 21:57
门头沟学院 Java
白友:噗嗤,我发现有些人事就爱发这些,明明已读不回就行了,就是要恶心人
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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