關於二叉樹的一些問題

2021-10-08 04:02:45 字數 2076 閱讀 8278

tips:關於二叉樹的絕大多數問題都可以用遞迴方法來實現,dfs。一位二叉樹根節點去掉之後又分為兩個子樹,對於子樹本身也可以看左二叉樹來處理。所以遞迴可以說很好用了

二叉樹的建立:

public

class

bittree

public

bittree

(int data)

public

static bittree createbittree

(scanner reader)

return root;

}

前序 中序 後序 ,我在這裡就不寫遞迴了,太簡單了:

public

static

void

vistedbypre

(bittree root)

}public

static

void

vistedbypre1

(bittree root)

while

(!stack.

isempty()

)}}public

static

void

vistedbymid

(bittree root)

stack.

push

(root.rchild)

; stack.

push

(root);if

(root.lchild!=null) stack.

push

(root.lchild);}

}public

static

void

vistedbymid1

(bittree root)

while

(!stack.

isempty()

)}}public

static

void

vistedbyback

(bittree root)

stack.

push

(root);if

(root.rchild!=null) stack.

push

(root.rchild);if

(root.lchild!=null) stack.

push

(root.lchild);}

}public

static

void

vistedbyback1

(bittree root)

while

(!stack.

isempty()

) stack.

push

(root)

; root=root.rchild;

while

(root!=null)

}}

廣度遍歷二叉樹:

public

static

void

vistedbyguangdu

(bittree root)

}

求葉子節點個數:

public

static

intgetyezijiedian

(bittree root)

//葉子節點數 深度遍歷遞迴演算法

求二叉樹深度:

public

static

intgetshendu

(bittree root)

//求深度 dfs

}

判斷是否為完全二叉樹:

public

boolean

iswanquanbittree

(bittree root)

//廣度遍歷 一層一層的來遍歷 bfs}}

return

true

;}

需要好好理會遞迴的思想 那麼對於樹的相關知識,就會看起來相對簡單一點

二叉樹的一些問題

二叉樹的先序遍歷 遞迴 void preorder btnode ptr 二叉樹中序遍歷 遞迴 void inorder btnode ptr 二叉樹後序遍歷 遞迴 void pastorder btnode ptr 先序遍歷二叉樹 非遞迴 void nicepastorder btnode ptr...

二叉樹 路徑搜尋中的一些問題

目錄前言 1 求二叉樹的最大深度 leetcode104 2 求二叉樹的最小深度 leetcode111 3 求二叉樹的正向 逆向數字路徑和 leetcode129 4 求二叉樹的節點路徑和 leetcode437 5 小結 重要 二叉樹的路徑搜尋就是乙個簡易版的行程回溯演算法,之所以是簡易版是因為...

有關二叉樹的一些問題集合(一)

二叉樹的資料結構 class treenode1.求二叉樹的最大深度 int maxdeath treenode node intleft maxdeath node.left intright maxdeath node.right return math.max left,right 1 2.求...