当我有两个孩子时,我有删除节点的问题,我不知道该怎么做,因为我已经解决了没有孩子,左孩子和右孩子的问题
struct Node* deleteNode(Node *root, int val)
{
if(root == NULL) return root;
else if(val < root->data)
root->left = deleteNode(root->left,val);
else if(val > root->data)
root->right = deleteNode(root->right, val);
else
{
if(root->left == NULL && root->right == NULL)
{
free(root);
root = NULL;
}
else if(root->left == NULL)
{
Node *temp = root;
root = root->right;
free(temp);
}
else if(root->right == NULL)
{
Node *temp = root;
root = root->left;
free(temp);
}
}
答案 0 :(得分:0)
如果我理解你的问题,你必须让一个子节点成为另一个子节点。如果子节点都没有度数&lt;你必须为add添加另一个递归函数。 1