60 劍指offer 把二叉樹列印成多行

2022-08-24 01:12:08 字數 514 閱讀 5777

題目描述

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

解題思路:可以直到,每次列印乙個結點,然後列印下一行時總是先列印其左子結點,然後列印其右子結點。先入先出,使用佇列處理。使用tobeprint記錄當前行列印的個數,每存入乙個-1;nextlevel記錄下一行列印結點個數;一行列印完,tobeprint = nextlevel;nextlevel = 0;

1/*2

struct treenode 9};

10*/

11class

solution

31if(pnode->right !=null)

3236

nodes.pop();

37 --tobeprint;

38if(tobeprint == 0)//

一行已列印完

3945}46

return

result;47}

48 };

60 劍指offer 把二叉樹列印成多行

從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。bfs 層次遍歷 class solution vec.push back c return vec 法二 按之字形列印用兩個棧,按順序列印就用兩個佇列!這樣比較好寫好記 兩個佇列交錯列印 class solution if v1.si...

劍指offer60 把二叉樹列印成多行

從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。二叉樹的層序遍歷高階版 基礎版 二叉樹的層序遍歷,乙個陣列輸出,不用記錄當前層有沒有遍歷完 基礎版層序遍歷 高階版 本題,要記錄當前層有沒有遍歷完 高階版plus 按之字形列印,不但要記錄當前層有沒有遍歷完,還要記錄當前遍歷的層數 之字...

劍指offer(60)把二叉樹列印成多行

從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。從上到下列印二叉樹我們知道用佇列可以實現,但是如果多行列印怎麼做呢?我們需要分割,在行與行之間進行分割。如何分割呢?肯定要知道個數才能分割。可是我又如何知道這一行有多少個呢?這就是重點了,我們可以通過遍歷上一層,通過它們的子樹就可以知道...