說明: 葉子節點是指沒有子節點的節點。
思路:只想到了使用遞歸的方法,遞歸查找左右子樹是否存在和 sum - root.val 的一條路徑,結束條件是節點爲葉節點且其值爲sum,還需要注意樹爲空的情況(這裏應該用到了分治法的思想),下面是python實現:
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def hasPathSum(self, root, sum):
"""
:type root: TreeNode
:type sum: int
:rtype: bool
"""
#處理空樹的情況
if root == None:
return False
#處理葉節點的情況
if root.left == None and root.right == None:
if sum == root.val:
return True
else:
return False
#遞歸遍歷左右子樹
if root.left != None or root.right != None:
return self.hasPathSum(root.left, sum-root.val) or self.hasPathSum(root.right, sum-root.val)
python剛開始學,還請大佬們多多指教!!