我想在未排序的二叉树中找到一个叶节点,并且能够在其他函数中使用它。 我有这个想法
已更新****
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);
}
}
答案 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);
}
}