題目描述:
給定乙個二叉樹和乙個目標和,判斷該樹中是否存在根節點到葉子節點的路徑,這條路徑上所有節點值相加等於目標和。
說明:葉子節點是指沒有子節點的節點。
示例:給定如下二叉樹,以及目標和sum = 22
返回true,因為存在目標和22的根節點到葉子節點的路徑5->4->11->2
# 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):
""":type root: treenode
:type sum: int
:rtype: bool
"""#思路:從當前位置分兩路一直向下遍歷,若有一條到達盡頭的路對應的sum值為0則返回true,否則返回false
if root == none:
return false
def find(node,sum_):
if node.left == none and node.right == none and sum_ == node.val:
return true
elif node.left == none and node.right == none and sum_ != node.val:
return false
elif node.left != none and node.right != none:
return find(node.left,sum_-node.val) or find(node.right,sum_-node.val)
elif node.left != none:
return find(node.left,sum_-node.val)
else:
return find(node.right,sum_-node.val)
return find(root,sum)
菜鳥一枚,**僅供參考,如有問題,望指正~ LeetCode 路徑總和
給定乙個二叉樹和乙個目標和,判斷該樹中是否存在根節點到葉子節點的路徑,這條路徑上所有節點值相加等於目標和。說明 葉子節點是指沒有子節點的節點。示例 給定如下二叉樹,以及目標和 sum 22,5 4 8 11 13 4 7 2 1 如下 definition for a binary tree nod...
路徑總和 III
給定乙個二叉樹,它的每個結點都存放著乙個整數值。找出路徑和等於給定數值的路徑總數。路徑不需要從根節點開始,也不需要在葉子節點結束,但是路徑方向必須是向下的 只能從父節點到子節點 二叉樹不超過1000個節點,且節點數值範圍是 1000000,1000000 的整數。示例 root 10,5,3,3,2...
路徑總和 II
給定乙個二叉樹和乙個目標和,找到所有從根節點到葉子節點路徑總和等於給定目標和的路徑。樣例 1 輸入 root sum 22 5 4 8 11 13 4 7 2 5 1 輸出 5,4,11,2 5,8,4,5 解釋 兩條路徑之和為 22 5 4 11 2 22 5 8 4 5 22樣例 2 輸入 ro...