如何在二进制NOT SORTED树中查找叶节点

时间:2014-12-18 10:17:11

标签: c binary-tree

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

已更新****

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);
    }
}

1 个答案:

答案 0 :(得分:1)

试试这个:

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

如果root已离开子节点,则左子节点必须具有叶节点。 和正确的孩子一样。

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);
    }
}