二叉樹的映象

2021-07-03 08:38:20 字數 865 閱讀 5791

【題目】

請完成乙個函式,輸入乙個二叉樹,該函式輸出它的映象。

【分析】

映象概念:猶如人照鏡子一般,二叉樹的映象,就是將映象二叉樹與原二叉樹對折可以重合的意思,如下:

實現方法:

一層一層向下遍歷每個根節點,將根節點下的左右孩子交換位置。

從根節點開始,交換其左右孩子6和7,以7為根節點的子樹結構和以6為根節點的子樹結構完全交換後,遞迴操作左子樹和右子樹,如圖所示。

【測試**】

#include

#include

typedef struct binarytreenode

node;

void create(node **t)

}void

mirror_tree

(node **root)

void

pre_visit

(node **root)

else

}void

main

()

【測試結果】

測試例中二叉樹:

測試特殊輸入:空樹

映象二叉樹

映象二叉樹與二叉樹的區別是左右孩子對於根節點的相對大小剛好相反不用建立映象樹,通過對原樹的映象便歷,即可得到所需的東西。後序 樹 lr根,映象 rl根。如果創立映象二叉樹,insert 改一下即可,這樣可以把preordermirror 等去掉。對於遍歷後的排序放到vector陣列裡便於比較,而且進...

映象二叉樹

題目描述 操作給定的二叉樹,將其變換為源二叉樹的映象。思路 1 獲取源二叉樹的映象,將源二叉樹的左右子樹交換即可 2 主要步驟 若二叉樹為空,直接返回 若二叉樹不為空,交換其左右子樹 遞迴的將二叉樹的其他結點進行交換 public class treenode public class soluti...

二叉樹12 二叉樹的映象

題目 操作給定的二叉樹,將其變換為源二叉樹的映象。輸入描述 思路 首先要理解業務邏輯,何為映象?所謂映象就是對於任何乙個結點,將其左右子樹進行交換即可。對於一棵以root為根結點的二叉樹,要將其映象,首先將其左右子樹 root.left為根的子樹 和 root.right為根的子樹 進行映象,然後將...