路径总和 【 leetcode - 112 - 简单】

 

 

胡扯:这个题的确见证了我的进步,连续刷了几天的dfs了,从开始的不知如何下手,到这个一次提交以打败 100% 通过,开心。

 

 思路:

    1、日常非空判断

    2、遍历求和。

    3、如果是叶子节点就判断当前节点的和,是否等于 所求的和

 

代码: 可以打开下面的注释 查看每一个节点的和

 

class Solution {
    boolean flag = false;
    int total = 0;
    void dfs (TreeNode root,int current){


//        System.out.println(root.val + " : " + current);
        if ( root.left == null && root.right == null ){     //判断是不是叶子节点
            if (current == total)
                flag = true;
        }
        if (root.left != null)
            dfs(root.left,current + root.left.val);
        if (root.right != null)
            dfs(root.right,current + root.right.val);
    }

    public boolean hasPathSum(TreeNode root, int sum) {
        if (root == null)
            return false;
        total = sum;
        dfs(root,root.val);
        return flag;
    }
}

 

全部评论

相关推荐

03-29 12:10
门头沟学院 C++
挣K存W养DOG:散漫消极者淘汰,一眼坑爹。实习几个月转正的时候说你加班太少,能力还行态度不够积极裁了,马上老实。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务