C语言 如何在二元未排序树中查找叶节点



我想在未排序的二叉树中找到一个叶节点,并能够在其他函数中使用它。我有一个想法

更新****

node * leaf(node* root)
{
    if(root==NULL)
        return NULL;
    if(root->left==NULL && root->right==NULL)
        return root;
    else
    {   leaf(root->left);
        leaf(root->right);
    }
}

试试这个:

如果根没有子节点,则根是叶节点。

如果根具有左子节点,则左子节点必须具有叶节点。和右孩子一样。

node* leaf(node* root) {
    if(root == NULL)
        return NULL;
    if(root->left == NULL && root->right == NULL) {
        return root;
    } else if(root->left != NULL) {
        return leaf(root->left);
    } else {
        return leaf(root->right);
    }
}

最新更新