給定乙個二叉樹和乙個目標和,找到所有從根節點到葉子節點路徑總和等於給定目標和的路徑。
說明: 葉子節點是指沒有子節點的節點。
示例:給定如下二叉樹,以及目標和 sum = 22,
5
/ \ 48/
/ \ 11134
/ \ / \
7251
返回:
[[5
,4,11
,2],
[5,8
,4,5
]]
該題是典型的遞迴題,有dfs,bfs兩種方式進行。
dfs: 遞迴,不遞迴情況下要用到stack
bfs: 不遞迴,要用到queue
dfs做法:
/**
* definition for a binary tree node.
* public class treenode
* }*/class
solution
public
void
dfs(treenode root,
int val,
int sum, list
p)dfs
(root.left, val + root.val, sum, p)
;dfs
(root.right, val + root.val, sum, p)
; p.
remove
(p.size()
-1);
}}
bfs方式:
/**
* definition for a binary tree node.
* public class treenode
* }*/class
solution
if(node.left != null)
if(node.right != null)
}return res;
}public
void
getpath
(treenode node)
collections.
reverse
(temp)
; res.
add(
newlinkedlist
(temp));
}}
參考:
遞迴深入講述
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...