写算法,在一个带头结点的单链表中插入一个元素,使之成为新链表中第i个元素

2024-12-26 16:30:59
推荐回答(2个)
回答1:

大概是这样子,没测试过.

void insertnode(node* p,int i)
{
int pos = 0;
node* tmp = head;
node* t = NULL;
while(tmp->next)
{
tmp = tmp->next;
pos++;
if (pos == i)
{
break;
}
}
if (pos < i)
{
return;
}

if (tmp->next == NULL)
{
tmp->next = p;
p->next = NULL;
}
else
{
t = tmp->next;
tmp->next = p;
p->next = t;
}
}

回答2:

if(head->next!=null)
{
ptr=head-next;
while(ptr->next!=null && i>0)
{
new->next=prt->next;
ptr->next=new;
i--;
}
}
写的有点粗糙