class Solution(object):
def hasPathSum(self, root, targetSum):
# 层次遍历,依次记录累加和
if not root:
return False
from collections import deque
que_node = collections.deque([root])
que_val = collections.deque([root.val])
while que_node:
nowNode = que_node.popleft()
nowValue = que_val.popleft()
if not nowNode.left and not nowNode.right:
if nowValue == targetSum:
return True
if nowNode.left:
que_node.append(nowNode.left)
que_val.append(nowNode.left.val + nowValue)
if nowNode.right:
que_node.append(nowNode.right)
que_val.append(nowNode.right.val + nowValue)
return False
# =================================================================================
# 递归 依次相减 看叶子结点值是否符合要求
if not root:
return
if not root.left and not root.right:
return targetSum == root.val
return self.hasPathSum(root.left, targetSum-root.val) or self.hasPathSum(root.right, targetSum-root.val)
leetcode刷题250天(26)——112. 路径总和
最新推荐文章于 2024-10-14 18:52:56 发布