【LEETCODE】112-Path Sum
2015-12-25 10:50
246 查看
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.
For 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.
题意:
给一个二叉树和一个和,判断是否存在一个从root到leaf的path,使得其中的所有值的和等于sum
思路:
遍历每个path,计算sum,直到等于22或者遍历结束
或者遇到一个点,sum减去节点的值,到leaf时剩余0则True,否则False
参考: http://www.cnblogs.com/CheeseZH/p/4034291.html
For 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.
题意:
给一个二叉树和一个和,判断是否存在一个从root到leaf的path,使得其中的所有值的和等于sum
思路:
遍历每个path,计算sum,直到等于22或者遍历结束
或者遇到一个点,sum减去节点的值,到leaf时剩余0则True,否则False
参考: http://www.cnblogs.com/CheeseZH/p/4034291.html
# Definition for a binary tree node. # class TreeNode(object): # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution(object): def hasPathSum(self, root, sum): """ :type root: TreeNode :type sum: int :rtype: bool """ if root is None: return False sum-=root.val #遇到一个点,sum减去节点的值 if sum==0 and root.left==None and root.right==None: #到leaf时剩余0则True,否则False r=True else: r=False return r or self.hasPathSum(root.left, sum) or self.hasPathSum(root.right, sum) #<span style="font-family: Arial, Helvetica, sans-serif;">直到leaf</span>
相关文章推荐
- POJ 1330 Nearest Common Ancestors(Tarjan离线LCA)
- jndi
- Enterprise Library 企业库
- oracle 10g 创建db_link
- 让Git忽略SSL证书
- pureftp(file transfer protocol) vsftp
- android使用动态链接库
- time_t tm timeval 和 时间字符串的转换
- 141,整数类型
- mysql分页原理和高效率的mysql分页查询语句
- ubuntu系统AndroidStudio修改内存大小
- ubuntu系统AndroidStudio修改内存大小
- 华为0基础——合唱队
- 软件工程课程的建议
- 工作环境配置纪录
- TinyPNG---一个压缩PNG的神站
- Android编译系统参考手册
- java.util.MissingResourceException: Can't find resource for bundle java.util.PropertyResourceBundle,
- NSSearchPathForDirectoriesInDomains用法
- nginx做负载均衡配置