LeetCode Path Sum

来源:互联网 发布:利他林代购淘宝 编辑:程序博客网 时间:2024/06/05 15:58
/** * Definition for binary tree * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */public class Solution {    public boolean hasPathSum(TreeNode root, int sum) {        //将每条路径求和,与sum做比较        //怎么求和?如果是array或者arraylist,直接按顺序用循环相加就可以了        //但tree的话,必须通过left或者right来找下一个点的值,所以只能是递归        if(root == null) return false;//if(root == null && sum != null) return false;错,int不可能为null        //上面这句除了针对刚开始情况的空集,还有针对断路,断了就只能return false        if(root.left != null)root.left.val= root.val + root.left.val;        if(root.right != null)root.right.val= root.val + root.right.val;//通过这两行式子将上面的值带给下面                if(root.right == null && root.left == null)//此点是leaf的话就进行判断        {            if(root.val == sum)return true;            return false;        }        return (hasPathSum(root.left, sum) || hasPathSum(root.right, sum));//,不是有一个比较成功就行        // return (hasPathSum(root.right, sum) || hasPathSum(root.right, sum))要仔细!            }}/*Input:{1,2}, 3Output:falseExpected:true*/

0 0
原创粉丝点击