LC55 Day8 二叉樹中序遍歷 遞迴 非遞迴

2021-10-08 09:23:13 字數 934 閱讀 6937

二叉樹的序列化遵循層序遍歷的原則,」#「代表該位置是一條路徑的終結

比如,給出的二叉樹為,它的中序遍歷為[1,3,2].

1

/ \ # 2

/3

建立arraylist變數

arraylist

list =

newarraylist

<

>()

;

為arraylist變數賦值

for

(int i =

1; i <

10; i++

)

方法1:遞迴

/**

* definition for a binary tree node.

* public class treenode 建構函式

* }*/class

solution

public

void

solve

(treenode cur, list

res)

}

第二種方法 非遞迴 ,利用棧stack

stackstack = new stack<>();
push()

pop()

while(條件) continue用法: 程式走到continue,跳到while處,然後重複

思路:前序遍歷 根-左-右

先列印root.val, 然後右子樹先入棧,左子樹**棧,這樣才能左先出棧,右後出棧

中序遍歷 左-根-右

class

solution

else

}return res;

}}

二叉樹中序遍歷

訪問根結點的的左子樹,訪問根結點和訪問根結點的右子樹依次記作 l,d r 中序遍歷 ldr 演算法 遍歷根結點的左子樹,訪問根結點 遍歷根結點的右子樹 對於上面的圖,我們假定只有a,b,c三個結點,則中序遍歷結果為 b a c 採用上節 二叉樹鏈式儲存和前序遍歷 中的遞迴推演 db a c d b ...

二叉樹中序遍歷

二叉樹中序遍歷 非遞迴版本的中序遍歷用棧來實現。乙個元素出現在棧頂一次,這一次會被處理並出棧。trick 用乙個指標去記錄當前節點cur,如果cur left左側還未遍歷,就會將cur入棧並訪問cur left。一行很重要的 是cur cur right,這一句之後如果cur null,則說明棧頂元...

二叉樹先序遍歷和中序遍歷確定二叉樹

由於希望得到一顆二叉樹,所以返回值型別是乙個指向根節點的指標 表示得到了一顆二叉樹 btnode creatbt char pre,char int,int l1,int r1,int l2,int r2 引數列表有傳入的先序序列和後序序列和他們的開頭和結尾 由於是遞迴函式,先寫乙個遞迴出口,顯然是...