每日一題 35二叉樹前序遍歷

2021-10-09 09:27:26 字數 697 閱讀 2803

給定乙個二叉樹,返回它的前序遍歷。

示例:

輸入:[

1,null,2,

3]1 \

2/3

輸出:[1,

2,3]

首先二叉樹的遞迴遍歷

private

void

preorder

(treenode root, list

res)

第二 二叉樹的非遞迴 使用棧來儲存節點 效率不是很高

/**

* definition for a binary tree node.

* public class treenode

* }*/class

solution

private

void

preorder

(treenode root, list

res)

//沒有左節點 把root取出找右節點

二叉樹前序遍歷

樹的前序遍歷 根左右 可以設計乙個棧來實現 首先讓根root入棧,然後root出棧,pop掉棧頂的元素,列印root,然後把root的右孩子入棧,左孩子入棧,讓棧頂的元素變成新的root,pop掉棧頂的元素,列印root,然後把root的右孩子入棧,左孩子入棧,重複此步驟 include inclu...

LeetCode基礎 二叉樹 前序遍歷

前序 根 左 右 遞迴實現 public class solution return result 非遞迴實現 建立乙個棧,把 root 結點入棧。棧不為空時就執行下面的流程。2.1.從棧中彈出乙個元素,並輸出這個元素。2.2.把彈出元素的右子結點入棧。2.3.把彈出元素的左子結點入棧。public...

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

二叉樹的建立 如果要在記憶體中建立乙個如下左圖這樣的樹,wield 能讓每個結點確認是否有左右孩子,我們對它進行擴充套件,變成如下右圖的樣子,也就是將二叉樹中的每個結點的空指標引出乙個虛結點,其值為乙個特定值,比如 稱之為擴充套件二叉樹。擴充套件二叉樹就可以做到乙個遍歷序列確定一棵二叉樹了。如前序遍...