设为首页 加入收藏

TOP

[leetcode] path sum @ Python [recursion]
2015-07-20 17:29:57 来源: 作者: 【 】 浏览:3
Tags:leetcode path sum Python recursion
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.
?
思路: 递归的暴力 破解
?
穷尽式的解决了所有子问题后,就放心的自我调用吧。
?
复制代码
# Definition for a ?binary tree node
# class TreeNode:
# ? ? def __init__(self, x):
# ? ? ? ? self.val = x
# ? ? ? ? self.left = None
# ? ? ? ? self.right = None
?
class Solution:
? ? # @param root, a tree node
? ? # @param sum, an integer
? ? # @return a boolean
? ? def hasPathSum(self, root, sum):
? ? ? ? if root == None: return False
? ? ? ? if root.val == sum and root.left == None and root.right == None:?
? ? ? ? ? ? return True
? ? ? ? return self.hasPathSum(root.left, sum - root.val) or self.hasPathSum(root.right, sum - root.val)
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇ZOJ - 3822 Domination (DP) 下一篇设计模式的C++实现 24.简单工厂模..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Linux_百度百科 (2025-12-26 12:51:52)
·Shell 流程控制 | 菜 (2025-12-26 12:51:49)
·TCP/UDP协议_百度百科 (2025-12-26 12:20:11)
·什么是TCP和UDP协议 (2025-12-26 12:20:09)
·TCP和UDP详解 (非常 (2025-12-26 12:20:06)