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