劍指offer學習筆記(10) 二叉樹的映象

2021-10-02 12:47:13 字數 593 閱讀 1624

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

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

8/ \

6 10

/ \ / \

5 7 9 11

映象二叉樹

8/ \

10 6

/ \ / \

11 9 7 5

分析兩棵樹根節點相同,但左右節點交換;下一層仍然是左右節點交換。

具體思路為,先前序遍歷(根左右)樹的每個節點,如果遍歷到該節點有子節點,則交換它的兩個節點。當交換完所有非葉子節點的左右子節點之後,得到樹的映象。實現過程如下圖。

//遞迴遍歷左右孩子,使其交換

if(proot->left!=null)

mirror(proot->left);

if(proot->right!=null)

mirror(proot->right);}};

劍指offer 學習筆記 二叉樹的映象

面試題27 二叉樹的映象。輸入一棵二叉樹,該函式輸出它的映象。二叉樹的節點定義如下 struct binarytreenode 依次交換每個節點的兩個子樹即可 include using namespace std struct binarytreenode binarytreenode const...

劍指offer 學習筆記 二叉樹的深度

面試題55 二叉樹的深度。1.輸入一棵二叉樹,求該樹的深度。只需遍歷整棵樹的每一條路徑找出最長的即可,以下 中的樹結構為 左子樹長度 int leftpreorderend startpreorder leftlength 左子樹先序遍歷尾邊界 if leftlength 0 if leftleng...

重建二叉數 劍指offer

輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。二叉樹四種基本的遍歷思想為 前序遍歷 根結點 左子樹 右子樹 中序遍歷 左子樹 根結點 右子樹 後序遍歷 左子樹 右子樹 根結點 層...