如何在第n个位置后在单个链表中插入新节点?

时间:2014-12-29 06:43:58

标签: singly-linked-list insertion

好的,所以我想在第n个位置(不是结束或开始)的C中单个链接列表中插入一个新节点,但我搜索后得到的是如何在一个开头或结尾插入新节点链表。任何帮助表示赞赏。 感谢。

3 个答案:

答案 0 :(得分:0)

或许这样的事情。

 void insert_at(list_node **list, list_node *new,int offset)
 {
     while(offset-- && (*list)->next )
        list=&((*list)->next);
     new->next=(*list)->next
     (*list)->next=new;
 }

答案 1 :(得分:0)

这将起作用:

void InsertNode(int position, int newdata)

{
    struct Node* temp = (struct Node* )malloc(sizeof(struct Node* ));
    temp->data=newdata;    
    struct Node* temp2=head;
    
    if(position==1)
    {
        temp->next=temp2;
        head=temp;
        return ;
    }
        
    for(int i=1;i<position;i++)
    {
        temp2=temp2->next;
    }

    temp->next=temp2->next;
    temp2->next=temp;
    return;
}

答案 2 :(得分:-1)

我自己找到了解决方案。 这是我的算法 -

步骤1-给出一个链表,索引它。

步骤2-询问用户想要插入新节点的索引

步骤3-遍历链接列表,直到达到该索引

步骤4-在当前索引

之后创建一个指向节点的新节点

步骤5-使用户输入的索引节点指向新节点

Voila,完成了!