題目描述
給定乙個二叉樹和乙個目標和,找到所有從根節點到葉子節點路徑總和等於給定目標和的路徑。
說明: 葉子節點是指沒有子節點的節點。
示例:給定如下二叉樹,以及目標和 sum = 22,
返回:思路dfs(前序遍歷),遞迴[[5,4,11,2],
[5,8,4,5]
]
用乙個path來存放路徑,每次將當前節點值新增到路徑中
分別遞迴的遍歷左節點和右節點,遞迴完右節點(遞迴終止)後將最後乙個節點值從path中移除
如果到達根節點,並且加和總和等於sum,則將path新增到res結果集中
時間複雜度:o(n),空間複雜度o(logn)
/**
* definition for a binary tree node.
* public class treenode
* }*//**
* 思路:dfs(前序遍歷),遞迴
* 用乙個path來存放路徑,每次將當前節點值新增到路徑中
* 分別遞迴的遍歷左節點和右節點,遞迴完右節點(遞迴終止)後將最後乙個節點值從path中移除
* 如果到達根節點,並且加和總和等於sum,則將path新增到res結果集中
* 時間複雜度:o(n),空間複雜度o(logn)
*/class
solution
public
void
dfs(treenode root,
int sum, list
> res, list
path)
}
LeetCode每日一題 路徑總和
題目 給定乙個二叉樹和乙個目標和,判斷該樹中是否存在根節點到葉子節點的路徑,這條路徑上所有節點值相加等於目標和。說明 葉子節點是指沒有子節點的節點。示例 給定如下二叉樹,以及目標和 sum 22,5 4 8 11 13 4 7 2 1 返回 true,因為存在目標和為 22 的根節點到葉子節點的路徑...
(力扣每日一題)路徑總和
給定乙個二叉樹和乙個目標和,判斷該樹中是否存在根節點到葉子節點的路徑,這條路徑上所有節點值相加等於目標和。說明 葉子節點是指沒有子節點的節點。解題思路 1 使用廣度優先搜尋的方式,記錄從根節點到當前節點的路徑和。2 使用兩個佇列,分別儲存將要遍歷的節點,以及根節點到這些節點的路徑和。class so...
每日一題 路徑總和的變體
題目描述 給定乙個二叉樹,它的每個結點都存放著乙個整數值。找出路徑和等於給定數值的路徑總數。路徑不需要從根節點開始,也不需要在葉子節點結束,但是路徑方向必須是向下的 只能從父節點到子節點 二叉樹不超過1000個節點,且節點數值範圍是 1000000,1000000 的整數。示例 返回 3。和等於 8...