Leetcode_86_分割連結串列_連結串列
1/3
個人認為是一道非常好的題
能很好的熟悉c與java之間指標的操作
思路:先構建一個頭指標,next指向head,
然後找到一個節點的next大於等於x,
也就是說我們要把這個節點後所有小於x的點
依次插入到這個節點前面。
我們用fir和sec兩個指標來實現這個操作。
fir指向的是插入的位置,它始終指向第一個大於等於x的前一位
我們可以通過每次插入後,後移fir這個節點來維護這個位置。
sec是我們目前要處理的節點的前一位,
之所以是前一位是因為我們要刪除一個節點,
必須將它前一位的next變成這一位的next,
所以我們得保留它前一位的指標。
接下來的增加和刪除操作我就不加贅述了。
class Solution {
public ListNode partition(ListNode head, int x) {
ListNode fir= new ListNode();
ListNode sec=null;
fir.next = head;
head = fir;
while (fir != null && fir.next != null) {
if (fir.next.val >= x) {
sec = fir.next;
break;
}
fir = fir.next;
}
while (sec != null && sec.next != null) {
if (sec.next.val < x) {
ListNode temp= sec.next;
sec.next = sec.next.next;
temp.next = fir.next;
fir.next = temp;
fir = fir.next;
continue;
}
sec = sec.next;
}
return head.next;
}
}
相關文章
- 連結串列-雙向連結串列
- 連結串列-迴圈連結串列
- 連結串列面試題(二)---連結串列逆序(連結串列反轉)面試題
- 連結串列4: 迴圈連結串列
- 連結串列-單連結串列實現
- 連結串列入門與插入連結串列
- (連結串列)連結串列的排序問題排序
- 連結串列
- javascript中的連結串列結構—雙向連結串列JavaScript
- 【LeetCode】->連結串列->通向連結串列自由之路LeetCode
- php連結串列PHP
- 連結串列操作
- 連結串列逆序
- 2、連結串列
- 【圖解連結串列類面試題】移除連結串列元素圖解面試題
- 【圖解連結串列類面試題】環形連結串列圖解面試題
- 連結串列以及golang介入式連結串列的實現Golang
- Linux核心連結串列-通用連結串列的實現Linux
- 資料結構-單連結串列、雙連結串列資料結構
- 反轉連結串列、合併連結串列、樹的子結構
- 資料結構與演算法——連結串列 Linked List(單連結串列、雙向連結串列、單向環形連結串列-Josephu 問題)資料結構演算法
- 【LeetCode-連結串列】面試題-反轉連結串列LeetCode面試題
- 連結串列專題——面試中常見的連結串列問題面試
- LeetCode-Python-86. 分隔連結串列(連結串列)LeetCodePython
- 連結串列面試題(七)---合併兩個有序連結串列面試題
- 資料結構實驗之連結串列九:雙向連結串列資料結構
- 資料結構實驗之連結串列二:逆序建立連結串列資料結構
- 資料結構--陣列、單向連結串列、雙向連結串列資料結構陣列
- 連結串列(python)Python
- 雙向連結串列
- 反轉連結串列
- 構建連結串列
- 旋轉連結串列
- 環形連結串列_相交連結串列_多數元素(java語言)Java
- 【程式碼隨想錄】二、連結串列:2、設計連結串列
- 【程式碼隨想錄】二、連結串列:1、移除連結串列元素
- 資料結構實驗之連結串列三:連結串列的逆置資料結構
- 資料結構實驗之連結串列五:單連結串列的拆分資料結構