3 實現二叉樹先序,中序和後序遍歷

2021-10-22 08:42:34 字數 1340 閱讀 8093

題目:給乙個root,分別把preorder,inorder,postorder的結果放到陣列,最後返回乙個二維陣列。

public int threeorders (treenode root)

思路:模擬實現

1.二維陣列的建立。這裡使用先以行建立,int result = new int[3];先建立乙個3行的,然後每個用result[0] = new int[nodenum];建立,用result[0][i]去賦值。

2.用arraylist儲存每個node的值。先用arraylist不需要知道有多少個,直接往裡加,然後把這些東西再放到陣列裡就行了。

題目鏈結

private

int nodenum =0;

//先放到arraylist裡,然後再放到陣列裡

private list

res =

newarraylist

<

>()

;public

int[

] threeorders (treenode root)

//如果root為null,則返回沒有元素的陣列

if(root == null)

return result;

//preorder

for(

int i =

0; i < nodenum; i++

) res.

clear()

;//inorder

inorder

(root)

;for

(int i =

0; i < nodenum; i++

) res.

clear()

;//postorder

postorder

(root)

;for

(int i =

0; i < nodenum; i++

)return result;

}public

void

preorder

(treenode root)

}public

void

inorder

(treenode root)

}public

void

postorder

(treenode root)

}

二叉樹先序 中序 後序遍歷

題目 用遞迴和非遞迴方式,分別按照二叉樹先序 中序和後序列印所有的節點。我們約定 先序遍歷順序為根 左 右 中序遍歷順序為左 根 右 後序遍歷順序為左 右 根。遞迴實現 遞迴遍歷二叉樹 先序 public void preorderrecur node head system.out.println...

二叉樹先序遍歷 中序遍歷 後序遍歷

輸入二叉樹的先序遍歷序列和中序遍歷序列,輸出該二叉樹的後序遍歷序列。非建二叉樹版本 include includeusing namespace std string preord,inord void rebuild int preleft,int preright,int inleft,int ...

二叉樹先序遍歷 後序遍歷 中序遍歷

從根部 a 開始,然後開始遍歷左子樹,直接找到 b 檢視 b 有沒有左子樹,有 d,再檢視 d 有沒有子樹,沒有,d 已經是葉子,所以第二個是 d。倒回去,取中 b,第三個數是 b。檢視 b 有沒有右子樹,有 e 檢視 e 有沒有子樹,有 g 左 h 右 所有後面三個數是 egh 先查左子樹,存在繼...