給定乙個二叉樹,返回所有從根節點到葉子節點的路徑。
說明: 葉子節點是指沒有子節點的節點。
示例:遞迴終止的條件是什麼?一次遞迴中要進行什麼操作?遞迴想要返回什麼資訊?輸出: [「1->2->5」, 「1->3」]
解釋: 所有根節點到葉子節點的路徑為: 1->2->5, 1->3
基於前序遞迴模板。
終止條件:節點為空
遞迴中操作:為葉節點時,將路徑加入list,不為葉節點就把此節點的值入str
提交初版**後發現執行用時13ms…所以將string換成stringbuffer,sb需要進行回溯處理。
/**
* 直接用string做傳遞
* @param root
* @return
*/public
static list
binarytreepaths
(treenode root)
public
static
void
process2
(treenode root, list
list, string str)
if(root.left == null && root.right == null)
else
process2
(root.left, list, str)
;process2
(root.right, list, str);}
/** * stringbuffer做傳遞
* @param root
* @return
*/public
static list
binarytreepaths1
(treenode root)
public
static
void
process1
(treenode root, list
list, stringbuffer str)
str.
(root.val);if
(root.left == null && root.right == null)
else
if(root.right != null)
}}
257 二叉樹的所有路徑
給定乙個二叉樹,返回所有從根節點到葉子節點的路徑。說明 葉子節點是指沒有子節點的節點。示例 輸入 1 2 3 5輸出 1 2 5 1 3 解釋 所有根節點到葉子節點的路徑為 1 2 5,1 3 definition for a binary tree node.struct treenode cla...
257 二叉樹的所有路徑
給定乙個二叉樹,返回所有從根節點到葉子節點的路徑。說明 葉子節點是指沒有子節點的節點。輸入 1 2 3 5 輸出 1 2 5 1 3 解釋 所有根節點到葉子節點的路徑為 1 2 5,1 3遞迴,只是在遞迴的過程中加入乙個字串temp 儲存現在已經到的路徑 同時再加以乙個list 作為答案集合 當遍歷...
257 二叉樹的所有路徑
給定乙個二叉樹,返回所有從根節點到葉子節點的路徑。說明 葉子節點是指沒有子節點的節點。解題思路 樹的經典題,以此題展開的變體題有求樹的某條路徑之和,或者求所有路徑之和,etc.definition for a binary tree node.struct treenode class soluti...