删除第K个结点其实主要就是删除这个结点中的值,即可以删除第K+1个结点,然后把它的它拿来放在第K个节点处就行了
Node **deleteKNode(Node **head, int k)
{
if((*head) == NULL)
{
return NULL;
}
Node *p = (*head);
int len = 0;
while(p)
{
p = p->next;
len++;
}
if(k < 0 || k > len)
{
return NULL;
}
p = (*head);
if(k == 0)
{
(*head) = p->next;
return head;
}
while(k > 0)
{
p = p->next;
k--;
}
Node *s = p->next; //删除第K个结点其实主要就是删除这个结点中的值,即可以删除第K+1个结点,然后把它的它拿来放在第K个节点处就行了
p->value = s->value;
p->next = s->next;
return head;
}