60 把二叉樹列印成多行(層次遍歷)

2021-09-25 11:59:22 字數 1090 閱讀 4285

從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。

遞迴,節點加入對應層數的list中

public

class

solution

public

void

depth

(treenode root,

int depth, arraylist

> list)

if(depth > list.

size()

) list.

get(depth-1)

.add

(root.val)

;depth

(root.left, depth+

1, list)

;depth

(root.right, depth+

1, list);}

}

非遞迴,用null標記每層的開始,或用start==end標記每層的結束,end為每層的節點數

public

class

solution

queue

q =newlinkedlist

<

>()

; q.

offer

(null)

; q.

offer

(proot)

; arraylist

list =

newarraylist

<

>()

;while

(q.size()

>1)

ret.

add(

newarraylist

(list));

list.

clear()

; q.

offer

(null)

;continue;}

if(node.left != null)

if(node.right != null)

}return ret;

}}

60 把二叉樹列印成多行

題目描述 從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。分析 和59題類似,使用兩個佇列實現。從左至右列印當前行的結點時,將當前結點在下一行的左 右子結點放入佇列中,列印下一行時從佇列取出即可。保證列印完一行後將佇列置空,儲存下一行。struct treenode class so...

用層次遍歷把二叉樹列印成多行

這是一題關於樹的遍歷的題目,解題思路是在二叉樹的層次遍歷演算法中稍作修改,讓二叉樹的每一層都能儲存在不同的集合中。以下是解題 所有的解題思路都寫在 中 using system.collections.generic public class treenode 從上到下按層列印二叉樹,同一層結點從左...

把二叉樹列印成多行

從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。中序遍歷,使用佇列,將每一行的元素依次壓入佇列,每將佇列中元素彈出乙個就將其左右子節點壓入佇列。在每一行的開始節點時,佇列中元素的個數就是下一行節點的個數,通過計數取出該行所有元素。struct treenode class solut...