給定乙個二叉樹,返回它的前序遍歷。
示例:
輸入:[
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 能讓每個結點確認是否有左右孩子,我們對它進行擴充套件,變成如下右圖的樣子,也就是將二叉樹中的每個結點的空指標引出乙個虛結點,其值為乙個特定值,比如 稱之為擴充套件二叉樹。擴充套件二叉樹就可以做到乙個遍歷序列確定一棵二叉樹了。如前序遍...