class Solution:
def hasPathSum(self, root: TreeNode, sum: int) -> bool:
# 暂时还是有点不太好理解,以后再看看。
# 深度优先。参考 https://leetcode-cn.com/problems/path-sum/solution/fei-di-gui-dfsrong-yi-li-jie-python-by-baiyizhe/
if not root:
return sum == None
# 同时保存节点,和当前这条路径上的数值之和
stack = [(root.val, root)]
while stack:
# 取出来的时候也是2个值
temp_sum, node = stack.pop()
# 我只想先看看按照这种写法的话,实际的遍历顺序是什么样的
print(node.val)
if node.right:
# 这里的这个 + 这种写法,我之前是没遇到的,通常我会写:
# temp_sum += node.right.val
# 但是当前我们是在 while 循环中,所以可以这样写的。
# print(temp_sum + node.right.val)
stack.append((temp_sum + node.right.val, node.right))
if node.left:
# print(temp_sum + node.left.val)
stack.append((temp_sum + node.left.val, node.left))
if not node.left and not node.right and temp_sum == sum:
# print("okok")
return True
return False
leetcode 112. 路径总和
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 112 Path Sum 路径总和 Description:Given a binary tree and a s...