N叉樹的操作

2021-08-18 22:30:29 字數 1322 閱讀 5459

父節點有且最多只有兩個子節點的樹稱為二叉樹,n叉樹則是父節點有n個子節點。

由於n叉樹有多個子節點,因此沒有中序遍歷,只剩下前序遍歷、後序遍歷和層序遍歷。

和二叉樹類似,遍歷的順序是

根節點-左子節點-其他子節點-右子節點

前序遍歷的結果:[1,3,5,6,2,4]

public

list

<

integer

> preorder(node root)

list

.add(root.val);

for(int i=

0;ireturn

list;

}

子節點放前根結點放後,上圖

後序遍歷的結果:[5,6,3,2,4,1]

public

list

<

integer

> postorder(node root)

for(int i=

0;ilist

.add(root.val);

return

list;

}

層序遍歷的結果:

[ [1],

[3,2,4],

[5,6]

]

public

list

<

list

<

integer

>> levelorder(node root)

levellist.add(node.val);

}if(levellist.size()>

0) list

.add(levellist);

levellist=

new arraylist<

integer

>();

}return

list;

}

public

intmaxdepth(node root)

int max=0;

for(int i=0;iint temp=maxdepth(root.children.get(i));

if(temp>max)

}return max+1;

}

由於n叉樹沒有什麼特別的性質,所以常見的操作不是很多,全部的**在github,所採用的序列化為json。

二叉樹 n叉樹 搜尋樹的各種操作

include pch.h include include include using namespace std struct node node newnode int v void search node root,int x,int newdata 在二叉樹中插入乙個資料域為x的新節點 注意...

N叉樹的遍歷

class node public node int val public node int val,list children public list preorder node root public void dfs node root,list res public class bfsntr...

N叉樹的最大深度

給定乙個 n 叉樹,找到其最大深度。最大深度是指從根節點到最遠葉子節點的最長路徑上的節點總數。例如,給定乙個 3叉樹 我們應返回其最大深度,3。說明 樹的深度不會超過 1000。樹的節點總不會超過 5000。題目實現 definition for a node.class node node int...