操作給定的二叉樹,將其變換為源二叉樹的映象。
二叉樹的映象定義:源二叉樹分析兩棵樹根節點相同,但左右節點交換;下一層仍然是左右節點交換。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
輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。二叉樹四種基本的遍歷思想為 前序遍歷 根結點 左子樹 右子樹 中序遍歷 左子樹 根結點 右子樹 後序遍歷 左子樹 右子樹 根結點 層...