傳送門
題意:操作給定的二叉樹,將其變換為源二叉樹的映象。
二叉樹的映象定義:源二叉樹其實通過畫圖,可以得知,樹的映象實際上就是交換所有非葉節點的左右節點,這樣就變成了樹的遍歷。8/ \
6 10
/ \ / \
5 7 9 11
映象二叉樹
8/ \
10 6
/ \ / \
11 9 7 5
先前序遍歷這棵樹的每個節點,如果遍歷到的節點有子節點,就交換它的兩個子節點,當交換完所有非葉節點的左右節點之後,就得到了樹的映象。依然要養成防禦性程式設計的習慣,注意空指標所造成的程式崩潰的問題。
//交換所有非葉節點的左右節點
//本題實際上是利用樹的遍歷演算法解決問題,需要注意的是防禦性程式設計的習慣
/*struct treenode
};*/
class solution
~solution()
void mirror(treenode *proot)
};
二叉樹12 二叉樹的映象
題目 操作給定的二叉樹,將其變換為源二叉樹的映象。輸入描述 思路 首先要理解業務邏輯,何為映象?所謂映象就是對於任何乙個結點,將其左右子樹進行交換即可。對於一棵以root為根結點的二叉樹,要將其映象,首先將其左右子樹 root.left為根的子樹 和 root.right為根的子樹 進行映象,然後將...
二叉樹的深度,平衡二叉樹,二叉樹的映象
輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點 含根 葉結點 形成樹的一條路徑,最長路徑的長度為樹的深度。實現,遞迴遍歷二叉樹的左子樹,右子樹,取子樹深度大值,再加上子樹與根節點的距離1,即為這顆二叉樹的深度 classsolution 輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。平...
樹 二叉樹的遍歷
參考大佬的講解 隨想錄,總結的很好 107.二叉樹的層次遍歷 ii 採用自頂向下,一層一層遍歷,然後逆轉就是自底向上。1.一層一層遍歷樹,這裡用到的是佇列來做,以root開始 2.將root放進佇列,第一層就只有root這乙個節點,當佇列不為空,讀取佇列中的長度size,表示的是一層節點的數目,第一...