LintCode 二叉樹的所有路徑

2021-07-30 14:05:33 字數 865 閱讀 5469

題目描述:

給一棵二叉樹,找出從根節點到葉子節點的所有路徑。

樣例:給出下面這棵二叉樹:

1

/ \

2 3

\ 5

所有根到葉子的路徑為:

[

"1->2->5",

"1->3"

]

做題思路:

題目要求在輸出時,陣列中輸出的是一串路徑,所以,在類內呼叫已寫的遞迴函式,對遞迴函式進行編寫:定義樹的結點、陣列物件和字串。如果左子樹和右子樹都為空,則把根節點的值放入陣列中輸出,如果左子樹的值不為空,則呼叫函式,把路徑的結點值放入字串中輸出,如果右子樹的值不為空,則呼叫函式,把路徑的結點值放入字串中輸出,放入陣列中,遍歷完樹之後,跳出遞迴。

關鍵**:

class solution 

void binarytree(treenode *root,vector&ve,string s)

if(root->left!=null)

binarytree(root->left,ve,s+"->"+to_string(root->left->val));

if(root->right!=null)

binarytree(root->right,ve,s+"->"+to_string(root->right->val));

}};

做題感想:其實剛開始這題並不太會,因為想用給定的這個函式直接編寫遞迴,發現該函式中只有定義了乙個結點,上網搜了很多答案都不懂,後來才看到乙個類內編寫了乙個遞迴函式,把遍歷完的路徑轉化成字串儲存進陣列中,在該函式中呼叫遞迴函式。

LintCode 二叉樹的所有路徑

二叉樹的所有路徑 給一棵二叉樹,找出從根節點到葉子節點的所有路徑。樣例 給出下面這棵二叉樹 1 2 3 5 所有根到葉子的路徑為 1 2 5 1 3 definition of treenode public class treenode public class solution public v...

LintCode 二叉樹的所有路徑

1.描述 給一棵二叉樹,找出從根節點到葉子節點的所有路徑。哪家公司問你的這個題?樣例 給出下面這棵二叉樹 1 2 3 5所有根到葉子的路徑為 1 2 5 1 3 2.分析 首先需要找到葉子節點,從根節點到任乙個葉子節點中間的路徑都是乙個string,當遍歷到當前節點不是 葉子節點時,把當前節點加入s...

Lintcode 二叉樹的所有路徑

給一棵二叉樹,找出從根節點到葉子節點的所有路徑。yes樣例給出下面這棵二叉樹 1 2 3 5所有根到葉子的路徑為 1 2 5 1 3 思路 一般二叉樹的問題用遞迴解決比較簡潔。這裡其實是先序遍歷 在庫檔案string中,to string int value 是把乙個整數轉換為字串 兩個字串使用 連...