力扣第86題分隔鍊錶

2021-10-06 04:53:48 字數 744 閱讀 5581

86.分隔鍊錶

難度:中等

標籤:雙指標

給定乙個鍊錶和乙個特定值 x,對鍊錶進行分隔,使得所有小於 x 的節點都在大於或等於 x 的節點之前。

你應當保留兩個分割槽中每個節點的初始相對位置。

示例:輸入: head = 1->4->3->2->5->2, x = 3

輸出: 1->2->2->4->3->5

思路:

1.雙指標的思路,乙個快指標index1,用來遍歷鍊錶,乙個慢指標index2,是小於x的節點的右邊界,包括這個節點,如果尋找到乙個新的小於x的結點,就插入到慢指標index2後面,index2後移一位,如果是大於等於x的節點,快指標就後移尋找下乙個節點,如果尋找到的新的小於x的結點,就在index2後面,就不需要插入,慢指標index2和快指標index1右移

public

static listnode partition

(listnode head,

int x)

//不在位置上,先刪除這個節點

index2.next=index2.next.next;

//將這個刪除的結點插入到index1後面

tmp.next=index1.next;

index1.next=tmp;

//index後移

index1=tmp;}}

return head.next;

}}

力扣第160題相交鍊錶

160.相交鍊錶 難度 簡單 標籤 鍊錶,雙指標 思路 兩個鍊錶有交點.兩個鍊錶的長度可能不一樣,但兩個鍊錶有相同的部分,不同的部分只是交點之前的結點,我們只需要讓兩個鍊錶同時走,當乙個鍊錶走到頭的時候,就接著讓他走另一條鍊錶的路,當他們相遇時,就是交點,因為他們走的長度都是他們自身長度加對方結點之...

力扣演算法題 086分隔鍊錶

給定乙個鍊錶和乙個特定值x,對鍊錶進行分隔,使得所有小於 x 的節點都在大於或等於 x 的節點之前。你應當保留兩個分割槽中每個節點的初始相對位置。示例 輸入 head 1 4 3 2 5 2,x 3 輸出 1 2 2 4 3 5 1 include 000庫函式.h 2 3struct listno...

力扣第142題環形鍊錶II

142.環形鍊錶ii 難度 中等 標籤 雙指標 給定乙個鍊錶,返回鍊錶開始入環的第乙個節點。如果鍊錶無環,則返回 null。為了表示給定鍊錶中的環,我們使用整數 pos 來表示鍊錶尾連線到鍊錶中的位置 索引從 0 開始 如果 pos 是 1,則在該鍊錶中沒有環。說明 不允許修改給定的鍊錶。示例 1 ...