二叉樹遍歷思想 三 後序遍歷

2021-10-02 16:44:35 字數 551 閱讀 8645

二叉樹的後序遍歷遞迴定義 : 

1) 當前節點為空(null)直接返回

2) 對於非空節點

i)   後序遍歷左子樹

ii)  後序遍歷右子樹

iii) 操作當前節點

二叉樹的非遞迴遍歷方法 : 

使用棧來進行遍歷。

策略簡述 : 

利用兩層迴圈巢狀(但時間複雜度仍然是o(n)),策略注釋在**中。

1

class

solution

1920 top = stack.peek(); //

此時以top為根的樹的左子樹已經後續遍歷結束了。

2122

//如若top的右子樹為null,或者上次已經輸出了top的右子樹。

23//

只有在這種情況下(左右子樹都已經輸出了)才開始輸出

24if (top.right == null || top.right ==last)else31}

32return

list;33}

34 }

二叉樹後序遍歷和層次遍歷

已知一棵二叉樹的前序遍歷和中序遍歷,求二叉樹的後序遍歷。輸入資料有多組,第一行是乙個整數t t 1000 代表有t組測試資料。每組包括兩個長度小於50 的字串,第乙個字串表示二叉樹的先序遍歷序列,第二個字串表示二叉樹的中序遍歷序列。每組第一行輸出二叉樹的後序遍歷序列,第二行輸出二叉樹的層次遍歷序列 ...

2016 11 3 1003 二叉樹後序遍歷

思路 根據二叉樹的前序和中序得到後序,只需要在中序中找到與前序第乙個相同的節點值,即根節點,然後把它分為左右子樹遞迴即可。左子樹遞迴時前序遍歷需要去掉第乙個,右子樹遞迴時則兩個序列都要去掉根節點及其左邊的內容。include include include using namespace std s...

二叉樹的後序遍歷

1 問題描述 給出一棵二叉樹,返回其節點值的後序遍歷。給出一棵二叉樹 1 2 3返回 3,2,1 2 問題實現 與前序遍歷 中序遍歷類似。若二叉樹為空,則空操作返回。否則後序遍歷根節點的左子樹,後序遍歷根節點的右子樹,訪問根節點。3 definition of treenode class tree...