給定乙個二叉樹和乙個目標和,判斷該樹中是否存在根節點到葉子節點的路徑,這條路徑上所有節點值相加等於目標和。思路:建立乙個佇列來儲存迭代過程中結點node的左右結點和sun說明: 葉子節點是指沒有子節點的節點。
示例:給定如下二叉樹,以及目標和 sum = 22,5/
4 8/ /
11 13 4
/ \
7 2 1
返回 true, 因為存在目標和為 22 的根節點到葉子節點的路徑 5->4->11->2。
class
solution
:def
haspathsum
(self, root: treenode,
sum:
int)
->
bool
:if root==
none
:return
false
queue=
[(root,
sum-root.val)
]while queue:
node, curr_sum=queue.pop()if
not node.left and
not node.right and curr_sum==0:
return
true
if node.right:
(node.right, curr_sum-node.right.val)
)if node.left:
(node.left, curr_sum-node.left.val)
)return
false
class
solution
:def
haspathsum
(self, root: treenode,
sum:
int)
->
bool
:if root==
none
:return
false
que=collections.deque(
)(root, root.val)
)while que:
node, cursum=que.popleft()if
not node.left and
not node.right and cursum==
sum:
return
true
if node.left:
(node.left, node.left.val+cursum)
)if node.right:
(node.right, node.right.val+cursum)
)return
false
LeetCode112 路徑總和
給定乙個二叉樹和乙個目標和,判斷該樹中是否存在根節點到葉子節點的路徑,這條路徑上所有節點值相加等於目標和。說明 葉子節點是指沒有子節點的節點。示例 給定如下二叉樹,以及目標和sum 22,5 48 1113 4 721返回true,因為存在目標和為 22 的根節點到葉子節點的路徑5 4 11 2。遍...
LeetCode 112 路徑總和
給定乙個二叉樹和乙個目標和,判斷該樹中是否存在根節點到葉子節點的路徑,這條路徑上所有節點值相加等於目標和。說明 葉子節點是指沒有子節點的節點。示例 給定如下二叉樹,以及目標和 sum 22,5 4 8 11 13 4 7 2 1 返回 true,因為存在目標和為 22 的根節點到葉子節點的路徑 5 ...
Leetcode 112 路徑總和
給定乙個二叉樹和乙個目標和,判斷該樹中是否存在根節點到葉子節點的路徑,這條路徑上所有節點值相加等於目標和。說明 葉子節點是指沒有子節點的節點。示例 給定如下二叉樹,以及目標和sum 22,5 48 1113 4 721 返回true,因為存在目標和為 22 的根節點到葉子節點的路徑5 4 11 2。...