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

2021-08-20 12:25:02 字數 625 閱讀 1161

例如

無頭鍊錶 a—>b—>c—>d 在節點c前面插入乙個節點

思路:乾坤大挪移

在c的後插入乙個節點,可以將c後面新插入的節點q的值與c的值交換

即可實現c節點之前插入節點的功能

void  listentry(listnode** phead, linknode* pos ,datatype value)

//若pos在頭節點 ,呼叫頭插

listpushfront(&phead);

//若在常規位置使用 乾坤大挪移

linknode*

new=listcreate();

new->

data

=value;

new->next=pos->next;

pos->

data

=new

->

data;

pos->next=

new;

}

在無頭單鏈表的乙個非頭節點前插入乙個節點

思路 由於單鏈表的單向性,所以我們現在這個非頭結點的後面插入乙個節點,然後在交換這兩個節點就可以了。標頭檔案 鍊錶定義 include include include typedef int datatype typedef struct strnode node typedef struct st...

單鏈表操作之在當前節點前插入乙個元素

在當前結點前插入乙個元素,沒有給頭指標 定義的結點的結構體和頭指標的結構體 typedef int datatype typedef struct linknode linknode,plinknode 結點結構體 typedef struct linklist linklist plinklist...

刪除當前單鏈表節點(不能找到前乙個節點)

力扣上看到的乙個題,大概是寫乙個函式,這個函式的傳參值,是乙個單鏈表的某乙個節點,需要在鍊錶中刪除這個節點。不影響其他節點。首先按照常理,應該是找到前乙個節點,並將前乙個節點指向下乙個指標的節點進行更改。但是有問題,首先,這是乙個單鏈表,傳參值是要刪除的節點,也就是說找不到它的前乙個節點。思路 首先...