112. Path Sum

Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all the values along the path equals the given sum.
原题链接: http://oj.leetcode.com/problems/path-sum/

这是一道送分题,我却做得有点复杂了。
这题答案的第一句if (root == null) return false;是有玄机的,只要是null返回false就行了,不用管sum。
我想的是,root.left或者root.right不为null,sum<0 或者它们都为null了,sum却>0的情况才返回false,实际上它没这么复杂的判断,只需要在false的时候判断一下sum就行了。

这题还要注意的是sum减去的是root.val而不是left或right的val。

    public boolean hasPathSum(TreeNode root, int sum) {
        if (root == null) return false;

        if (root.left == null && root.right == null && sum == root.val) return true;

        return hasPathSum(root.left, sum - root.val) || hasPathSum(root.right, sum - root.val);
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容