leetcode題 86 分隔鍊錶(中等)

2021-09-26 02:08:48 字數 797 閱讀 6279

一、題目描述:86. 分隔鍊錶(中等)

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

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

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

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

二、解題思路

1、插入排序的方式,left指標表示鍊錶中節點值大於x的前乙個節點。right指標和r_next指標遍歷鍊錶,發現r_next的節點值比x小則插入到left指標後面,並且left指標往前挪一步。right指標刪除r_next節點(r_next節點往下挪一步。注意邊界條件如果初始值left(等於head頭節點)節點值大於x,則將r_next節點放在left指標前面,並且left指標指向此時的r_next節點。

三、**

/**

* definition for singly-linked list.

* struct listnode

* };

*/class solution

listnode * right = left;

if(right == null)

return head;

listnode * r_next = right->next;

while(r_next != null)

else

}else

}return head;

}};

leetcode 鍊錶 86 分隔鍊錶

給定乙個鍊錶和乙個特定值x,對鍊錶進行分隔,使得所有小於 x 的節點都在大於或等於 x 的節點之前。你應當保留兩個分割槽中每個節點的初始相對位置。示例 輸入 head 1 4 3 2 5 2,x 3輸出 1 2 2 4 3 5大數結點指標總是指向後續結點,遇到小數結點,則前移到小數結點的尾結點 de...

Leetcode86 分隔鍊錶

題目描述 給定乙個鍊錶和乙個特定值x,對鍊錶進行分隔,使得所有小於 x 的節點都在大於或等於 x 的節點之前。你應當保留兩個分割槽中每個節點的初始相對位置。示例 輸入 head 1 4 3 2 5 2,x 3 輸出 1 2 2 4 3 5演算法描述 此題有兩種解法,第一種就是將所有小於給定值的節點取...

leetcode86 分隔鍊錶

給定乙個鍊錶和乙個特定值x,對鍊錶進行分隔,使得所有小於 x 的節點都在大於或等於 x 的節點之前。你應當保留兩個分割槽中每個節點的初始相對位置。示例 輸入 head 1 4 3 2 5 2,x 3 輸出 1 2 2 4 3 5 把所有小於給定值的節點都移到前面,大於該值的節點順序不變。將所有小於給...