2021-01-03 | 86. 分隔連結串列
1. 題目描述
給你一個連結串列和一個特定值 x ,請你對連結串列進行分隔,使得所有小於 x 的節點都出現在大於或等於 x 的節點之前。
你應當保留兩個分割槽中每個節點的初始相對位置。
示例:
輸入:head = 1->4->3->2->5->2, x = 3
輸出:1->2->2->4->3->5
2. 解題思路
對於這道題目,一個很直接的思路就是初始化兩個連結串列,一個連結串列來儲存小於x的值,另一個連結串列來儲存大於x的值。
這裡還初始化了兩個連結串列:mallHead 和 largeHead。這兩個是連結串列的啞節點,即它們的 next 指標指向連結串列的頭節點,這樣做的目的是為了更方便地處理頭節點為空的邊界條件。
遍歷結束後,將 large 的 next 指標置空,這是因為當前節點複用的是原連結串列的節點,而其 next 指標可能指向一個小於 x 的節點,我們需要切斷這個引用。同時將 small 的 next 指標指向 largeHead 的 next 指標指向的節點,即真正意義上的 large 連結串列的頭節點。最後返回 smallHead 的 next 指標就是最後的答案。
複雜度分析:
- 時間複雜度: O(n),其中 n 是原連結串列的長度,因為對該連結串列進行了一次遍歷。
- 空間複雜度: O(1)。
3. 程式碼實現
/**
* Definition for singly-linked list.
* function ListNode(val) {
* this.val = val;
* this.next = null;
* }
*/
/**
* @param {ListNode} head
* @param {number} x
* @return {ListNode}
*/
var partition = function(head, x) {
let small = new ListNode(0)
const smallHead = small
let large = new ListNode(0)
const largeHead = large
while(head){
if(head.val < x){
small.next = head
small = small.next
}else{
large.next = head
large = large.next
}
head = head.next
}
large.next = null
small.next = largeHead.next
return smallHead.next
};
4. 提交結果
相關文章
- LeetCode 86. 分隔連結串列LeetCode
- 86. 分隔連結串列(Java)Java
- 力扣 leetcode 86. 分隔連結串列力扣LeetCode
- 【1月打卡~Leetcode每日一題】86. 分隔連結串列(難度:中等)LeetCode每日一題
- LeetCode-Python-86. 分隔連結串列(連結串列)LeetCodePython
- LeetCode 86 ——分隔連結串列LeetCode
- 連結串列-迴圈連結串列
- 連結串列-雙向連結串列
- 連結串列 - 單向連結串列
- 連結串列4: 迴圈連結串列
- 連結串列-單連結串列實現
- 連結串列-雙向通用連結串列
- 連結串列-雙向非通用連結串列
- 【LeetCode】->連結串列->通向連結串列自由之路LeetCode
- 連結串列入門與插入連結串列
- Leetcode_86_分割連結串列_連結串列LeetCode
- 資料結構-單連結串列、雙連結串列資料結構
- 連結串列
- 單連結串列建立連結串列出現問題
- **203.移除連結串列元素****707.設計連結串列****206.反轉連結串列**
- 連結串列逆序
- 2、連結串列
- 連結串列(python)Python
- 重排連結串列
- (一)連結串列
- 分割連結串列
- 單連結串列
- php連結串列PHP
- 資料結構與演算法——連結串列 Linked List(單連結串列、雙向連結串列、單向環形連結串列-Josephu 問題)資料結構演算法
- 【LeetCode-連結串列】面試題-反轉連結串列LeetCode面試題
- 資料結構之連結串列:206. 反轉連結串列資料結構
- 反轉連結串列、合併連結串列、樹的子結構
- 程式碼隨想錄第3天 | 連結串列 203.移除連結串列元素,707.設計連結串列,206.反轉連結串列
- [連結串列】2.輸入一個連結串列,反轉連結串列後,輸出新連結串列的表頭。[多益,位元組考過]
- 【圖解連結串列類面試題】移除連結串列元素圖解面試題
- 【圖解連結串列類面試題】環形連結串列圖解面試題
- 資料結構實驗之連結串列二:逆序建立連結串列資料結構
- 資料結構實驗之連結串列九:雙向連結串列資料結構