Leetcode112 路徑總和 BFS

2021-10-24 06:41:10 字數 1445 閱讀 4582

給定乙個二叉樹和乙個目標和,判斷該樹中是否存在根節點到葉子節點的路徑,這條路徑上所有節點值相加等於目標和。

說明: 葉子節點是指沒有子節點的節點。

示例:給定如下二叉樹,以及目標和 sum = 22,5/

4 8/ /

11 13 4

/ \

7 2 1

返回 true, 因為存在目標和為 22 的根節點到葉子節點的路徑 5->4->11->2。

思路:建立乙個佇列來儲存迭代過程中結點node的左右結點和sun

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。...