Path Sum
2016-08-15 09:59
225 查看
leetcode第112题,二叉树搜索问题,计算从根到叶子节点路径之和与目标数比较。
首先我们确定一下递归的出口条件,出口应该是叶子节点处,这个时候应该计算整个路径上的和了,并且与目标值比较,如果正确就返回True。如果不是叶子节点,那么先加上本节点的值,然后分别向左右子树递归,左右子树会出现两个值,分别代表这两条路径上是否具有满足条件的情况,因此最后或以下就可以了。
首先我们确定一下递归的出口条件,出口应该是叶子节点处,这个时候应该计算整个路径上的和了,并且与目标值比较,如果正确就返回True。如果不是叶子节点,那么先加上本节点的值,然后分别向左右子树递归,左右子树会出现两个值,分别代表这两条路径上是否具有满足条件的情况,因此最后或以下就可以了。
# 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): def dfs(node,sum,target): if node.left == None and node.right == None: sum += node.val if sum == target: return True else: return False else: sum += node.val l = r = False if node.left != None: l = dfs(node.left,sum,target) if node.right != None: r = dfs(node.right,sum,target) return l or r if root == None: return False return dfs(root,0,sum)
相关文章推荐
- 04_过滤器Filter_01_入门简述
- Chapter4:表达式
- Android——SD卡工具类——SDCardUtils.java
- OpenJ_Bailian 4120 dp
- [Poi2000]公共串 && hustoj2797
- 学习后缀自动机想法
- toLocaleString() toString() valueOf()三种方法在数组上的区别运用
- HUSTOJ 2796 && SPOJ1811
- POJ2488——A Knight's Journey
- bzoj2141: 排队
- 泛型Class<T>和 T
- bzoj3262: 陌上花开
- Copy函数处理中文注意点,防止乱码
- JMeter中可以使用的一些获取日期时间的方法
- bzoj3196: Tyvj 1730 二逼平衡树
- bzoj1901: Zju2112 Dynamic Rankings
- 旋转图片
- 创建 LMDB 数据
- 学习记录
- 集合学习--HashTable 源码初探