在原鍊錶上將連表進行倒置

2021-09-17 03:19:58 字數 523 閱讀 3743

利用三個指標進行操作

首先p1指向a的前面 p2指向a p3指向b

p2->next指向p1  p3->next指向 p2;

然後將 p1、p2 、p3全部將後移一位

**實現:

void reverse(node *&head)

if (head == null || head->next==null)  //空或者只有乙個元素不用逆置

return;

node *pre, *cur, *rear;

pre = head;

cur = head->next;

while (cur)

rear = cur->next;

cur->next = pre;

pre = cur;

cur = rear;

//以下兩步,很重要

head->next = null;   //這一步會使新的尾節點的鏈域置空

head = pre;   //head指標指向新的一頭

}

鍊錶的倒置

public static void reorder ref node listhead node lefthead listhead node righthead null node current lefthead.next lefthead.next null while current nu...

單鏈表 鍊錶倒置

鍊錶屬於動態資料結構,可以模擬成一 環 接一 環 的鏈條,這裡每一 環 視作乙個結點,結點串在一起形成鍊錶。這種資料結構非常靈活,結點數目無須事先指定,可以臨時生成。每個結點有自己的儲存空間,結點間的儲存空間也無需連線,結點之間的串連由指標來完成,指標的操作又極為靈活方便,無須移動大批資料,只需修改...

單向鍊錶的倒置

首先要判斷當鍊表的長度為0或者1的時候,直接返回當前節點即可,否則需要兩個輔助 指標 pre next,分別指向頭結點的前結點和後結點,不然next屬性改變的時候就會丟失原先列表的結點位址。首先讓pre null,next null 迴圈當head null 的時候,讓next head.next,...