題目鏈結:
題目描述:
從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行
演算法思想:本題採用層次遍歷的思想,但本題的關鍵是如何取判斷是否是一行的結束。我們可以採取在每行的結束之後插入乙個空指標。當從佇列的中取出乙個空指標的時候表示這一層的結束並且下一層的所有節點都已經加入到了佇列之中,可以繼續在佇列中插入乙個空指標表示下一層的結束。
/*
struct treenode
};*/
class
solution
lever.
push_back
(t->val);if
(t->left)
q.push
(t->left);if
(t->right)
q.push
(t->right);}
return res;}}
;
劍指Offer 刷題 重建二叉樹
definition for binary tree public class treenode public class solution int val pre prel 前序遍歷序列中的第乙個數即為根節點 treenode tree newtreenode val int mid 0 找到根節...
劍指Offer刷題筆記 二叉樹的映象
操作給定的二叉樹,將其變換為源二叉樹的映象。思路 遞迴的交換左右子樹。不是交換結點的數值,直接交換結點。coding utf 8 class treenode def init self,x self.val x self.left none self.right none class soluti...
劍指Offer刷題筆記 二叉樹的深度
輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點 含根 葉結點 形成樹的一條路徑,最長路徑的長度為樹的深度。就是深度搜尋,找到最大深度。coding utf 8 class treenode def init self,x self.val x self.left none self.r...