一、前序遍歷:根 -> 左 -> 右
1、以遞迴的方式前序遍歷二叉樹
public
static
void
preorderbyrecursion
(treenode root, list
list)
list.
add(root.value)
;preorderbyrecursion
(root.left, list)
;preorderbyrecursion
(root.right, list)
;}
2、以棧的方式前序遍歷二叉樹public
static
void
preorderbystack
(treenode root, list
list)if(
!stack.
empty()
)}}
二、中序遍歷:左 -> 根 -> 右
1、以遞迴的方式中序遍歷二叉樹
public
static
void
inorderbyrecursion
(treenode root, list
list)
inorderbyrecursion
(root.left, list)
; list.
add(root.value)
;inorderbyrecursion
(root.right, list)
;}
2、以棧的方式中序遍歷二叉樹public
static
void
inorderbystack
(treenode root, list
list)if(
!stack.
empty()
)}}
三、後序遍歷:左 -> 右 -> 根
1、以遞迴的方式後序遍歷二叉樹
public
static
void
postorderbyrecursion
(treenode root, list
list)
postorderbyrecursion
(root.left, list)
;postorderbyrecursion
(root.right, list)
; list.
add(root.value)
;}
2、以棧的方式後序遍歷二叉樹public
static
void
postorderbystackinright
(treenode root, list
list)if(
!nodestack.
empty()
)}while
(!resultstack.
empty()
)}
構建二叉樹 遍歷二叉樹
陣列法構建二叉樹 public class main public static void main string args 用陣列的方式構建二叉樹 public static void createbintree 把linkedlist集合轉成二叉樹的形式 for int j 0 j 最後乙個父節...
二叉樹遍歷
二叉樹的遍歷非常重要,但對已一棵比較複雜的樹,要寫出它的先 中 後序遍歷,往往不是那麼簡單,也很容易犯錯。這裡介紹一種比較直觀且不容易犯錯的方法。對於圖1所示的二叉樹,要寫出它的先 中 後序遍歷,往往很容易出錯。圖 1 其實,我們可以用圖2中的紅線描畫出二叉樹的輪廓。圖 2 而對於樹上的每乙個節點,...
二叉樹遍歷
描述 華為實習生招聘,有一道類似如下的題目 給出二叉樹,如圖1所示 圖 1 二叉樹 要求給出中序遍歷的結果。下面分別就前序遍歷 中序遍歷 後序遍歷進行分析。規律 前序遍歷 根在前 子樹在根後且左子樹比右子樹靠前 中序遍歷 根在中 左子樹在根左邊,右子樹在根右邊 後序遍歷 根在後 子樹在根前且左子樹比...