二叉樹前序 中序 後序遍歷非迭代解法

2021-10-09 18:26:39 字數 771 閱讀 5764

經常會有面試官,讓你手撕二叉樹的前序、中序、後序遍歷,當你簡單得寫了遞迴的方法,

前序和中序遍歷,解決方法類似,都是使用棧解決的。後序遍歷稍微複雜一點。

二叉樹前序遍歷

class

solution

p = stack.

pop();

p = p.right;

}return list;

}}

二叉樹中序遍歷

class

solution

p = stack.

pop(

); list.

add(p.val)

; p = p.right;

}return list;

}}

二叉樹後序遍歷

class

solution

arraylist

result =

newarraylist

<

>()

;for

(int i = list.

size()

-1; i >=

0; i--

) result.

add(list.

get(i));

return result;

}}

二叉樹 前序遍歷 中序遍歷 後序遍歷

前序遍歷 dlr 是二叉樹遍歷的一種,也叫做先跟遍歷,先序遍歷,前序周遊,可記做根左右。前序遍歷首先訪問根節點然後遍歷左子樹,最後遍歷右子樹。前序遍歷首先訪問根節點然後遍歷左子樹,最後遍歷右子樹。在遍歷左 右子樹時,仍然先訪問根節點,然後遍歷左子樹,最後遍歷右子樹。若二叉樹為空則結束返回,否則 1 ...

二叉樹前序中序後序的非遞迴遍歷

1前序遍歷 按照根左右的順序進行遍歷,首先訪問根節點,若左孩子非空,訪問左子樹 右孩子非空訪問右子樹。以此規則遍歷整個二叉樹 1 當前點入棧,輸出該節點 2 如當前節點左孩子非空,訪問該節點的左孩子回到 1 3 若當前節點左孩子為空,訪問該節點右孩子回到 1 stacks vectorres tre...

二叉樹前序,中序,後序遍歷詳解

只要是搞計算機的,對資料結構中二叉樹遍歷都不陌生,但是如果用到的機會不多那麼就會慢慢淡忘,溫故而之新才是最好的學習方式,現在就重新溫習一下這方面的知識。首先我想先改變這幾個遍歷的名字 前根序遍歷,中根序遍歷,後根序遍歷 前中後本來就是相對於根結點來說的,少乙個字會產生很多不必要的誤解。1.前根序遍歷...