二叉树的一些操作
2020-10-02 本文已影响0人
Sweet丶
- 下面代码是交换左右子树的操作和查询所有叶子节点的代码:
// 交换左右子树
void SwapBiTreeChildren(BiTreeNode *root){
if (root == NULL || (root->left == NULL && root->right == NULL)) {
return;
}
BiTreeNode *temp = root->left;
root->left = root->right;
root->right = temp;
SwapBiTreeChildren(root->left);
SwapBiTreeChildren(root->right);
}
// 求叶子节点个数
int GetLeafNum(BiTreeNode *root){
//
if (root == NULL) return 0;
if (root->left == NULL && root->right == NULL) {
return 1;
}
return GetLeafNum(root->left) + GetLeafNum(root->right);
}