二叉樹的所有路徑

2021-07-30 22:59:43 字數 783 閱讀 7167

題目:

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

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

1

/ \

2 3

\ 5

所有根到葉子的路徑為:

[

"1->2->5",

"1->3"

]

思路:這個題的重點在於如何儲存前面的結點的值,用遞迴的思想。下面說一下具體實現:

首先說一下儲存所有路徑的函式allpath的大體思路。如果當前點不為空就將其值放入向量path中儲存,這個遞迴的引數中傳遞的是區域性變數向量path,每個函式中的path和前乙個函式的path中的元素不同,這就保證了每個path儲存了一條路徑。當遇到葉子節點時,停止遞迴,將當前路徑放入以string為元素的向量。中間將數值變為string是乙個較為創新的地方。

在主函式中呼叫寫的allpath函式,得到所有路徑。

**:class solution

string str1=to_string(path[n-1]);

a=a+str1;

}ap.push_back(a);

}else}}

vectorbinarytreepaths(treenode* root)

};感想:

這個題是在老師講了之後做的,不一樣的地方就是變為string型別。之前想過這個題不知道如何下手,傳區域性變數的想法很好的解決了這個問題,突然有種恍然大悟的感覺,傳區域性變數,儲存不同的資訊的做法十分值得學習。

二叉樹的所有路徑

一 問題描述 給一棵二叉樹,找出從根節點到葉子節點的所有路徑。樣例 給出下面這棵二叉樹 1 2 3 5 所有根到葉子的路徑為 1 2 5 1 3 二 解題思路 運用遞迴的思想查詢二叉樹的所有路徑,定義乙個向量用來儲存路徑,然後運用前序遍歷二叉樹,返回查詢的的路徑,在庫檔案string中,to str...

二叉樹的所有路徑

描述 給一棵二叉樹,找出從根節點到葉子節點的所有路徑。樣例 給出下面這棵二叉樹 1 2 3 5 所有根到葉子的路徑為 1 2 5 1 3 解題思路 要找到二叉樹的所有路徑,就相當於從根節點出發一直到葉子節點。我們可以在遍歷的基礎之上完成這項操作,但是又有所不同。首先從根節點出發,先遍歷它的左子樹,直...

二叉樹的所有路徑

問題描述 給一棵二叉樹,找出從根節點到葉子節點的所有路徑。樣例 給出下面這棵二叉樹 1 2 3 5所有根到葉子的路徑為 1 2 5 1 3 解題思路 若二叉樹不為空,將節點新增到向量中,左右子樹進行遞迴,通過函式呼叫然後輸出。definition of treenode class treenode...