leetcode113 路徑總和 II

2022-06-23 14:15:09 字數 667 閱讀 8842

參考自:這位博主!

給定一個二叉樹和一個目標和,找到所有從根節點到葉子節點路徑總和等於給定目標和的路徑。

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

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

5

/ \4

8 / / \

11 13 4

/ \ / \

7 2

5 1

返回:

[

[5,4,11,2],

[5,8,4,5]

]

解題思路:

主要思路就是深搜。但是要注意幾個地方:

(1)怎麼回溯?利用vector的pop_back()直接把最後不滿足的節點彈出就可以回溯了。

(2)怎麼標記當前的節點,防止其被重複搜到?採用中序遍歷,在被vector彈出後就不會再被重新搜到了。

(3)一點加速的地方,如果當前節點的左右葉子都被搜過了,那麼直接可以把這個節點也刪除了。

class solution 

void dfs(treenode* root,int sum)

}};