二叉树的一些操作

2020-10-02  本文已影响0人  Sweet丶
  1. 下面代码是交换左右子树的操作和查询所有叶子节点的代码:
// 交换左右子树
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);
}
上一篇 下一篇

猜你喜欢

热点阅读