日常練習11 二叉樹的前中後序遍歷非遞迴寫法

2021-09-26 14:04:49 字數 738 閱讀 6074

***二叉樹的前序、中序、後序遍歷的非遞迴寫法

**非遞迴方法:棧空間更容易控制

**遞迴使用棧是系統呼叫棧,空間比較小,一般也比較固定大小(遞迴寫法更簡單)

**自己用非遞迴,手頭實現棧,棧的空間在堆上,一般比較大

(1)前序遍歷的非遞迴

(2)中序遍歷的非遞迴

(3)後序遍歷的非遞迴

public class treenode 

public class trees

treenode top = stack.pop();

cur = top.right;}}

//中序遍歷的非遞迴

public static void inordernor(treenode root)

treenode top = stack.pop();

system.out.println(top.value);

cur = top.right;}}

//後序遍歷的非遞迴

private static void postordernor(treenode root)

treenode top = stack.peek();

if(top.right == null||top.right == last)else}}

public static void main(string args)

}

leetcode練習 145 二叉樹的後序遍歷

給定乙個二叉樹,返回它的 後序 遍歷。示例 輸入 1,null,2,3 12 3輸出 3,2,1 二叉樹的後序遍歷有個很奇怪的特點,就是通過對二叉樹使用棧進行層序遍歷,可以恰好得到乙個後序遍歷的結果。class solution if t right reverse res.begin res.en...

二叉樹的前中後序遍歷

秋招記錄 對一棵二叉樹進行遍歷,我們可以採取3種順序進行遍歷,分別是前序遍歷 中序遍歷和後序遍歷。這三種方式是以訪問父節點的順序來進行命名的。假設父節點是n,左節點是l,右節點是r,那麼對應的訪問遍歷順序如下 前序遍歷 中左右 n l r 中序遍歷 左中右 l n r 後序遍歷 左右中 l r n ...

二叉樹的前 中 後序遍歷

import lombok.data import lombok.noargsconstructor data noargsconstructor class treenode 前序遍歷 根 左 右 public void preorder 遞迴向右子樹前序遍歷if this right null ...