給定乙個二叉樹和乙個目標和,找到所有從根節點到葉子節點路徑總和等於給定目標和的路徑。
說明: 葉子節點是指沒有子節點的節點。
示例:
給定如下二叉樹,以及目標和 sum = 22,
5/ \
4 8
/ / \
11 13 4
/ \ / \
7 2 5 1
返回:[
[5,4,11,2],
[5,8,4,5]
]
確定遞迴函式返回值以及函式引數
由於要遍歷整一棵樹所以返回值為void,引數為(treenode root, int sum)
變數sum用以記錄當前節點對應的值
確定退出條件
如果是葉子節點並且sum等於葉子節點的值則新增當前路徑到答案
確定單層邏輯
要注意回溯
class
solution
private
void
paths
(treenode root,
int sum, list
path)
paths
(root.left, sum - root.val, path)
;paths
(root.right, sum - root.val, path)
; path.
remove
(path.
size()
-1);
}}
113 路徑總和 II
給定乙個二叉樹和乙個目標和,找到所有從根節點到葉子節點路徑總和等於給定目標和的路徑。說明 葉子節點是指沒有子節點的節點。示例 給定如下二叉樹,以及目標和 sum 22,4 8 11 13 4 7 2 5 1 返回 5,4,11,2 5,8,4,5 definition for a binary tr...
113 路徑總和 II
給定乙個二叉樹和乙個目標和,找到所有從根節點到葉子節點路徑總和等於給定目標和的路徑。說明 葉子節點是指沒有子節點的節點。示例 給定如下二叉樹,以及目標和 sum 22,definition for a binary tree node.class treenode object def init s...
113 路徑總和 II
113.路徑總和 ii 給定乙個二叉樹和乙個目標和,找到所有從根節點到葉子節點路徑總和等於給定目標和的路徑。vector pathsum treenode root,int sum void dfs treenode root,int sum,vector ans,vector one ans on...