二叉樹遍歷

2021-10-03 05:23:00 字數 1332 閱讀 9272

二叉樹是每個結點最多有兩個子樹的樹結構,二叉樹常被用於實現二叉查詢樹和二叉堆

private

static

class

treenode

}

public

static treenode creatbinarytree

(linkedlist

list)

t val = list.

removefirst()

;if(val != null)

return root;

}

按照 根-左-右 順序遞迴遍歷

public

void

preorder

(treenode root)

system.out.

println

(root.val)

;preorder

(root.left)

;preorder

(root.right)

;}

public

void

inorder

(treenode root)

preorder

(root.left)

; system.out.

println

(root.val)

;preorder

(root.right)

;}

public

void

postorder

(treenode root)

preorder

(root.left)

;preorder

(root.right)

; system.out.

println

(root.val)

;}

非遞迴使用最多的資料結構就是棧,棧具有先天的遞迴特性,以前序遍歷為例:

public

void

preorder

(treenode root)

//左孩子為空, 彈出棧頂, 訪問右孩子if(

!stack.

isempty()

)}}

public

void

levelorder

(treenode root)

if(node.right != null)

}}

構建二叉樹 遍歷二叉樹

陣列法構建二叉樹 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 二叉樹 要求給出中序遍歷的結果。下面分別就前序遍歷 中序遍歷 後序遍歷進行分析。規律 前序遍歷 根在前 子樹在根後且左子樹比右子樹靠前 中序遍歷 根在中 左子樹在根左邊,右子樹在根右邊 後序遍歷 根在後 子樹在根前且左子樹比...