1. 程式人生 > >在無頭單鏈表的一個節點前插入一個節點(不能遍歷)

在無頭單鏈表的一個節點前插入一個節點(不能遍歷)

例如
無頭連結串列 A—>B—>C—>D 在節點C前面插入一個節點

這裡寫圖片描述

思路: 乾坤大挪移

 在C的後插入一個節點,可以將C後面新插入的節點Q的值與C的值交換
 即可實現C節點之前插入節點的功能
void  Listentry(ListNode** phead, LinkNode* pos ,Datatype value)
{
    if(pos==NULL||phead==NULL)
    {    //非法
        return ;
    }
    //若pos在頭節點 ,呼叫頭插
    ListPushFront(&phead);
    //若在常規位置使用    乾坤大挪移
LinkNode* new=ListCreate(); new->data=value; new->next=pos->next; pos->data=new->data; pos->next=new; }