題目描述
從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。
思路:利用輔助佇列,並且設定乙個layersize變數用來記錄當前層上元素的個數;
/*
struct treenode
};*/
class
solution
res.
push_back
(tmp)
; layersize = assistant.
size()
;}return res;}}
;
方法二:
利用遞迴,遞迴遍歷每一層,然後將當前元素加入到其所在層的陣列中,若所在層陣列不存在,則先建立再加入。
/*
struct treenode
};*/
class
solution
res[depth]
.push_back
(root-
>val);if
(root-
>left)
layeradd
(root-
>left, depth +
1, res);if
(root-
>right)
layeradd
(root-
>right, depth +
1, res);}
public
: vectorint>
>
print
(treenode* proot)
};
劍指Offer 把二叉樹列印成多行
題目描述 從上到下按層列印二叉樹,同層結點按從左向右的順序列印,每一層列印到一行。例如8 6 10 5 7 9 11 類似於按層遍歷二叉樹,利用廣度優先遍歷的思想,選擇stl的佇列。step1 把起始節點放到佇列當中。step2 每一次從佇列頭部取出乙個結點,遍歷過這個節點後,把它能到達的其他節點 ...
劍指offer 把二叉樹列印成多行
從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。思路就是借助兩個輔助單向佇列queue來實現,暫且叫他們help1和help2。先把根節點壓入help1,然後依次取出help1裡面的元素,將其值放入儲存結果的vector中,並將其左右節點壓入help2,直至help1為空。此時hel...
劍指offer 把二叉樹列印成多行
從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。用佇列來實現按行列印,但是由於要分層列印,需要區分每一行,所以要用乙個tmp來記錄每層列印出的結果 coding utf 8 class treenode def init self,x self.val x self.left non...