利用三個指標進行操作
首先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,...