二叉樹的映象 樹的遍歷

2021-09-26 02:44:41 字數 610 閱讀 8094

傳送門

題意:操作給定的二叉樹,將其變換為源二叉樹的映象。

二叉樹的映象定義:源二叉樹 

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,表示的是一層節點的數目,第一...