給定乙個二叉樹和乙個目標和,找到所有從根節點到葉子節點路徑總和等於給定目標和的路徑。
說明: 葉子節點是指沒有子節點的節點。
示例:給定如下二叉樹,以及目標和 sum = 22,
5
/ \4 8
/ / \
11 13 4
/ \ / \
7 2 5 1
返回:
[[5,4,11,2],
[5,8,4,5]
]思路:
二叉樹的深度優先遍歷,在遍歷的過程中記錄當前的路徑以及路徑的和,在遍歷到根節點的時候對路徑和與目標進行判斷,將滿足要求的路徑和陣列push到結果陣列之中。
注意:
在二叉樹的遍歷過程中有回溯的情況,需要將遍歷完成的節點從路徑陣列和路徑和中刪除。
/**
* definition for a binary tree node.
* struct treenode
* };
*/class
solution
void
dfs(treenode* node,vector<
int>
&tempvec,
int tempsum,vectorint>>
&ret)
return;}
tempsum+
=node-
>val;
tempvec.
push_back
(node-
>val);if
(node-
>left)
dfs(node-
>left,tempvec,tempsum,ret);if
(node-
>right)
dfs(node-
>right,tempvec,tempsum,ret)
; tempsum-
=node-
>val;
tempvec.
pop_back()
;}};
LeetCode113 路徑之和2
給定乙個二叉樹和乙個目標和,找到所有從根節點到葉子節點路徑總和等於給定目標和的路徑。說明 葉子節點是指沒有子節點的節點。示例 給定如下二叉樹,以及目標和 sum 22,5 4 8 11 13 4 7 2 5 1返回 5,4,11,2 5,8,4,5 思路 先序遍歷。每遍歷乙個結點就將其值加入路徑陣列...
leetcode 113 路徑總和 II
題目描述 給定乙個二叉樹和乙個目標和,找到所有從根節點到葉子節點路徑總和等於給定目標和的路徑。說明 葉子節點是指沒有子節點的節點。示例 給定如下二叉樹,以及目標和sum 22,5 4 8 11 13 4 7 2 5 1返回 5,4,11,2 5,8,4,5 class solution void h...
leetcode113 路徑總和 II
參考自 這位博主!給定乙個二叉樹和乙個目標和,找到所有從根節點到葉子節點路徑總和等於給定目標和的路徑。說明 葉子節點是指沒有子節點的節點。示例 給定如下二叉樹,以及目標和sum 22,5 4 8 11 13 4 7 2 5 1返回 5,4,11,2 5,8,4,5 解題思路 主要思路就是深搜。但是要...