257二叉樹的所有路徑

2021-10-03 14:02:43 字數 1197 閱讀 1881

給定乙個二叉樹,返回所有從根節點到葉子節點的路徑。

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

示例:

輸出: [「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...