二叉樹的操作(交換左右子樹)

2021-09-20 06:43:35 字數 620 閱讀 6039

【問題描述】二叉樹按照二叉鍊錶的方式儲存。編寫程式,計算二叉樹中葉子結點的數目並輸出;編寫程式,將二叉樹的左右子樹進行交換,並輸出交換後的二叉樹的後序遍歷序列。

【輸入形式】二叉樹的前序遍歷序列,空指標的位置輸入字元#

【輸出形式】

葉子結點的數目

左右子樹交換後,後序遍歷的序列,空子樹的位置輸出字元#

【樣例輸入】

abe##f##cg###

【樣例輸出】

###gc##f##eba

#include#include#includeusing namespace std;

int count=0;

struct bitnode

;void create(bitnode *&t)

}void preleaf(bitnode *t)

preleaf(t->lchild);

preleaf(t->rchild); }}

void exchange(bitnode *t)

else

return;

}void postorder(bitnode *t)

}int main()

將二叉樹的所有結點的左右子樹交換

核心 將結點的左右子樹交換 void swap btnode root void treeswap btnode root 驗證 include include include include include define maxsize 100 typedef char elementtype t...

求二叉樹左右子樹高度差 110 平衡二叉樹

力扣 leetcode cn.com 給定乙個二叉樹,判斷它是否是高度平衡的二叉樹。本題中,一棵高度平衡二叉樹定義為 乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過1。示例 1 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7 返回 true 示例 2 給定二...

C 二叉樹左右孩子的交換

二叉樹每個結點實現左右孩子 如果存在 的交換,這個思想大概就是判斷一下樹的每個結點是否存在左 右結點,若存在,則直接交換位置 核心 如下 通過遞迴遍歷或者其他的遍歷,在遍歷的同時,進行對結點判斷,是否存在左孩子和右孩子,若存在 至少乙個 則進行交換 void exchange binode t 完全...