題目要求:
輸入一顆二元查詢樹(二元搜尋樹),將該樹轉換為它的映象。
例如:
8 8
/ \ ---> / \
6 11 11 6
參考資料:劍指offer第20題
題目分析:
思路很簡單:從根結點開始,交換左右結點的值,同時遞迴的處理左右子樹。
**中列印二叉樹用到了分層遍歷二叉樹,見程式設計之美3.10.
**實現:
#include #include using namespace std;
typedef struct binarytree
binarytree;
void inittree(binarytree **p);
void mirrorrecursively(binarytree *root);
void printtreebylevel(binarytree *root);
int main(void)
//分層遍歷二叉樹,見程式設計之美3.10
void printtreebylevel(binarytree *root)
else if(!q.empty())
}}void mirrorrecursively(binarytree *root)
// 10
// / \
// 5 12
// / \
// 4 7
void inittree(binarytree **p)
二叉樹 27題 二叉樹的映象
請完成乙個函式,輸入乙個二叉樹,該函式輸出它的映象。例如輸入 4 2 7 1 3 6 9 映象輸出 4 7 2 9 6 3 1 示例1 輸入 root 4,2,7,1,3,6,9 輸出 4,7,2,9,6,3,1 限制 0 節點個數 1000根據二叉樹映象的定義,考慮遞迴遍歷 dfs 二叉樹,交換每...
二叉樹經典題系列 二叉樹的映象
二叉樹的映象 將乙個二叉樹的左右子樹,調換位置。即下圖的形式 遞迴的思想是 從根節點的左右子樹進行交換,然後以根節點的左子樹為根節點,而後以根節點的右結點為根節點,進行左右子樹交換。遇到空節點或葉節點直接返回。下面求二叉樹映象的函式 實現 templatevoid mirrotree treenod...
映象二叉樹
映象二叉樹與二叉樹的區別是左右孩子對於根節點的相對大小剛好相反不用建立映象樹,通過對原樹的映象便歷,即可得到所需的東西。後序 樹 lr根,映象 rl根。如果創立映象二叉樹,insert 改一下即可,這樣可以把preordermirror 等去掉。對於遍歷後的排序放到vector陣列裡便於比較,而且進...