【核心**】
//將結點的左右子樹交換
void swap(btnode* root)
void treeswap(btnode* root)
}
【驗證**】
#include #include #include #include #include #define maxsize 100
typedef char elementtype;
typedef struct btnode
btnode;
//由層次遍歷和中序遍歷序列生成二叉樹的辦法(自己的辦法):二叉樹的根節點在層次遍歷序列中要先於
//其子樹首先被訪問,所以層次遍歷序列中第乙個與中序序列中匹配的字元為中序序列的根結點
btnode* createbtree(elementtype level, elementtype in, int l1, int r1, int l2, int r2)
else
}if (flag == 1)
break;
} bt->data = level[i];//曾經寫錯過,寫成了level[j],j指向的是in中的元素,應改為in[j]
bt->lchild = createbtree(level, in, l1 + 1, r1, l2, j - 1);
bt->rchild = createbtree(level, in, l1 + 1, r1, j + 1, r2);
return bt; }}
void inorder(btnode* bt)
}void preorder(btnode* bt)
}//將結點的左右子樹交換
編寫演算法將二叉樹中所有結點的左 右子樹相互交換
遞迴,c codes如下 class treenode public treenode rightson public string value public treenode string value null,treenode leftson null,treenode rightson nul...
二叉樹的操作(交換左右子樹)
問題描述 二叉樹按照二叉鍊錶的方式儲存。編寫程式,計算二叉樹中葉子結點的數目並輸出 編寫程式,將二叉樹的左右子樹進行交換,並輸出交換後的二叉樹的後序遍歷序列。輸入形式 二叉樹的前序遍歷序列,空指標的位置輸入字元 輸出形式 葉子結點的數目 左右子樹交換後,後序遍歷的序列,空子樹的位置輸出字元 樣例輸入...
求二叉樹左右子樹高度差 110 平衡二叉樹
力扣 leetcode cn.com 給定乙個二叉樹,判斷它是否是高度平衡的二叉樹。本題中,一棵高度平衡二叉樹定義為 乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過1。示例 1 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7 返回 true 示例 2 給定二...