鍊錶 reorder list

2021-09-24 02:59:36 字數 971 閱讀 8424

我之前是想著,用棧來儲存倒置的鍊錶,然後再以結點數作為while條件來依次地插入。可是超時了。因為別人題解裡也有這種做法,但是有通過,看了一下,可能原因出在「別人找了鍊錶的中點,只是用棧儲存了鍊錶的後半部分」,而我是棧儲存全部部分。

看了題解受到啟發,用了另一種方法:化解為熟悉的三個小題(感覺這種思想不錯哦!)

① 找到鍊錶中點,拆成兩個鍊錶

反轉後半部分的那個鍊錶

③ 將兩個鍊錶按題意合併

實現沒什麼問題,而且學到在迴圈處理鍊錶的時候首先採用↓,是多麼方便多麼爽!!!

listnode* pp = p; //先生成當前結點的副本,來進行處理

p=p->next; //迭代變數先溜了,不要被影響

但是仍然沒有一次性ac,找了半天,原因在於:倒置(反轉)鍊錶的時候,頭插法,要先將頭結點->next=null。別粗心呀。

/**

* definition for singly-linked list.

* struct listnode

* };

*/class solution

return slow;

}listnode* reverselist(listnode* head)

return head;

}listnode* mergelist(listnode* head1,listnode* head2)

return head1;

}void reorderlist(listnode *head)

};

Reorder List 鍊錶重排序

given a singly linked list l l0 l1 ln 1 ln,reorder it to l0 ln l1 ln 1 l2 ln 2 you must do this in place without altering the nodes values.for example...

Reorder List 穿插反轉鍊錶

given a singly linked list l l0 l 1 ln 1 l n,reorder it to l 0 ln l1 l n 1 l 2 ln 2 you may not modify the values in the list s nodes,only nodes itsel...

鍊錶 環形鍊錶

環形鍊錶也叫迴圈鍊錶 可以是雙鏈表 也可以是單鏈表 操作原理和單鏈表差不多,只是最後乙個節點不在指向空 null 而是頭 head 這裡以單鏈表舉例 description 環形鍊錶 author lzq date 2018 11 3 20 46 version 1.0 public class a...