(力扣每日一題)路徑總和

2021-10-07 21:11:53 字數 1015 閱讀 7946

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

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

解題思路

1、使用廣度優先搜尋的方式,記錄從根節點到當前節點的路徑和。

2、使用兩個佇列,分別儲存將要遍歷的節點,以及根節點到這些節點的路徑和。

**

class

solution

:def

haspathsum

(self, root: treenode,

sum:

int)

->

bool:if

not root:

return

false

#建立兩個佇列儲存要遍歷的節點

que_node = collections.deque(

[root]

) que_val = collections.deque(

[root.val]

)#對佇列進行廣度優先搜尋

while que_node:

now = que_node.popleft(

) temp = que_val.popleft(

)#判斷到達終點時目標值是否為路徑和

ifnot now.left and

not now.right:

if temp ==

sum:

return

true

continue

#遍歷當下左子樹時

if now.left:

#遍歷當下右子樹時

if now.right:

return

false

每日一題 路徑總和

題目描述 給定乙個二叉樹和乙個目標和,找到所有從根節點到葉子節點路徑總和等於給定目標和的路徑。說明 葉子節點是指沒有子節點的節點。示例 給定如下二叉樹,以及目標和 sum 22,返回 5,4,11,2 5,8,4,5 思路dfs 前序遍歷 遞迴 用乙個path來存放路徑,每次將當前節點值新增到路徑中...

LeetCode每日一題 路徑總和

題目 給定乙個二叉樹和乙個目標和,判斷該樹中是否存在根節點到葉子節點的路徑,這條路徑上所有節點值相加等於目標和。說明 葉子節點是指沒有子節點的節點。示例 給定如下二叉樹,以及目標和 sum 22,5 4 8 11 13 4 7 2 1 返回 true,因為存在目標和為 22 的根節點到葉子節點的路徑...

每日一題 力扣 計畫

98 驗證二叉搜尋樹 問題給定乙個二叉樹,判斷其是否是乙個有效的二叉搜尋樹。假設乙個二叉搜尋樹具有如下特徵 1.節點的左子樹只包含小於當前節點的數。2.節點的右子樹只包含大於當前節點的數。3.所有左子樹和右子樹自身必須也是二叉搜尋樹。示例 1 輸入 2 1 3 輸出 true示例2 輸入 5 1 4...