微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在链表末尾插入节点?

如何解决如何在链表末尾插入节点?

我是数据结构的初学者,我想知道如何在链表的末尾插入节点。 使用以下代码,我可以在开头和除链表末尾以外的任何其他位置插入节点。但是在最后插入节点时,我无法这样做。

void Insert(NODE *head,int n,int pos)
{
     NODE  *temp,*newnode;
     int i;
     for(temp = head,i = 1; ( temp != NULL ) && ( i <= pos-1 ); i++)
     {

         if(temp->next==NULL)
         {
             printf("\nPosition is out of range.\n\n");
         }
         

     }
          newnode = (NODE*)malloc(sizeof(NODE));
          newnode->info = n;
          newnode->next = temp->next;
          temp->next = newnode;
}

当我在最后插入节点时,它会给出以下输出 “位置超出范围。” 我有点理解为什么它会给出那个输出,但我无法找到我应该如何更改我的代码。 谢谢。

解决方法

评论你的代码:

for(temp = head,i = 1; ( temp != NULL ) && ( i <= pos-1 ); i++)
{

     if(temp->next==NULL) // Adding at the end means that you add when
                          // temp-> next is NULL
     {
         printf("\nPosition is out of range.\n\n");
     }
     

 }

例如,如果您在列表中插入 1 个元素并在位置 2 处插入,则 (i next==NULL) 为真。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。