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

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

http://www.nowcoder.com/practice/965fef32cae14a17a8e86c76ffe3131f

稍微复杂了些,将就看吧-_-

import java.util.*;

public class Solution {

private int res=0;

public void dfs(TreeNode root,ArrayList<Integer> sums,int target){
    int val = root.val;
    if(val==target) //如果节点值与target相等,也算是一条路径
        res++;
    for(int i=0;i<sums.size();++i){
        sums.set(i,sums.get(i)+val);
        if(sums.get(i)==target){
            res++;//如果某个累加值等于target,则符合路径+1
        }
    }
    sums.add(val);
    if(root.left!=null) dfs(root.left,new ArrayList<Integer>(sums),target);
    if(root.right!=null) dfs(root.right,new ArrayList<Integer>(sums),target);
}


public int FindPath (TreeNode root, int sum) {
    // write code here
    if(root==null)
        return 0;
    dfs(root, new ArrayList<Integer>(), sum);
    return res;
}

}

阿勇算法解集 文章被收录于专栏

对一些基础的,经典的题目的算法题解,每道题的题解尽量做到一题多解,举一反三。其中每一个题解中,若是参考了其他牛人的想法,我会备注出来。

全部评论

相关推荐

2025-12-11 14:24
门头沟学院 Java
牛客35720396...:不要用boss,全是骗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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