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.

Note: A leaf is a node with no children.

Example:

Given the below binary tree and sum = 22,

      5
     / \
    4   8
   /   / \
  11  13  4
 /  \      \
7    2      1

return true, as there exist a root-to-leaf path 5->4->11->2 which sum is 22.

 

使用递归进行计算,遍历所有的叶结点

Runtime: 96 ms, faster than 100.00% of C# online submissions for Path Sum.
Memory Usage: 24 MB, less than 68.75% of C# online submissions for Path Sum.
复制代码
public bool HasPathSum(TreeNode root, int sum)
        {
            if (root == null)
            {
                return false;
            }
            return Sum(root, sum, 0);
        }

        public bool Sum(TreeNode node, int target, int tempSum)
        {
            tempSum = tempSum + node.val;
            var left = node.left;
            var right = node.right;
            if (left == null && right == null)
            {
                return tempSum == target;
            }
            else if (left != null && right == null)
            {
                return Sum(left, target, tempSum);
            }
            else if (left == null && right != null)
            {
                return Sum(right, target, tempSum);
            }
            else if (left != null && right != null)
            {
                bool flag1 = Sum(left, target, tempSum);
                if (flag1)
                {
                    return true;
                }
                bool flag2 = Sum(right, target, tempSum);
                if (!flag2)
                {
                    return false;
                }
            }

            return true;
        }
复制代码

 

 

 

 

 

 

 

作者:Chuck Lu    GitHub    
posted @   ChuckLu  阅读(158)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2018-04-12 遍历文件夹下的子文件夹的时候,文件夹名字包含逗号或者空格
2016-04-12 OST
2016-04-12 GitHub常用操作
点击右上角即可分享
微信分享提示