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

2021-10-23 07:43:42 字數 636 閱讀 8005

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

顯然這是二叉樹的層次遍歷,在遍歷的過程中將節點值按層儲存。

問題的關鍵在於怎麼按層儲存。我們知道二叉樹的層次遍歷是每一層的子節點入棧,然後該層節點出棧,所以while的每一層迴圈開始時,佇列裡的元素都是二叉樹同一層的所有節點,我們記下此時的元素數量n,然後再使用乙個while把佇列裡的前 n個元素的值放入臨時陣列row,也就是每一行的值。

注:因為讀取值的時候需要不斷隊首出隊,如果讀取值和把子節點入隊的過程分開,就會導致有的節點出隊了但是其子節點還沒有入隊。

vectorint>

>

print

(treenode* proot)

if(temp.

front()

->right!=

null

) row.push_back (temp.

front()

->val )

; temp.

pop();

n--;}

res.push_back (row);}

return res;

}}

問題的關鍵在於怎麼按層儲存。

劍指offer 58 對稱的二叉樹

請實現乙個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果乙個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。時間限制 1秒 空間限制 32768k 熱度指數 121507 見 struct treenode class solution bool match treenode l,treenode...

劍指Offer(58) 對稱的二叉樹

請實現乙個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果乙個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。1 比較節點的左右子結點 a.如果其中乙個為空則不對稱 b.如果均不為空,則比較結點值,如果結點值不同則不對稱 2 如果當前結點左右子結點相同,則遞迴比較左子樹的右結點和右子樹的左結點 左子...

《劍指 Offer》 58 對稱的二叉樹

樹 請實現乙個函式,用來判斷一棵二叉樹是不是對稱的。注意,如果乙個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。對稱的二叉樹 8 10 10 11 9 9 11 public class treenode public class solution 判斷根節點的左子樹和右子樹是不是對稱 retur...