題幹:
從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。
思路:
陣列res用於儲存傳出的值,佇列q用於按層次順序儲存每乙個節點,佇列l用於儲存對應的結點所屬層數的值,從根節點開始依次將節點壓入佇列,每一次從佇列頭取出結點同時再將其左右孩子結點壓入佇列尾。
源**:
/*
struct treenode
};*/
class
solution
if(tmp-
>right!=
null)if
(levelsres[level-1]
.push_back
(tmp-
>val)
; l.
pop();
q.pop();
}return res;}}
;
把二叉樹列印成多行
從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。中序遍歷,使用佇列,將每一行的元素依次壓入佇列,每將佇列中元素彈出乙個就將其左右子節點壓入佇列。在每一行的開始節點時,佇列中元素的個數就是下一行節點的個數,通過計數取出該行所有元素。struct treenode class solut...
把二叉樹列印成多行
從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。先將根節點入隊 queuepush q,root while queueempty q 利用遞迴的方法進行先序遍歷,傳遞深度,遞迴深入一層擴容一層陣列,先序遍歷又保證了同層節點按從左到右入陣列,十分巧妙!他在不斷地擴容,最後答案類似這樣...
把二叉樹列印成多行
從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。先將根節點入隊 queuepush q,root while queueempty q 利用遞迴的方法進行先序遍歷,傳遞深度,遞迴深入一層擴容一層陣列,先序遍歷又保證了同層節點按從左到右入陣列,十分巧妙!他在不斷地擴容,最後答案類似這樣...