一、題目描述: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 把所有小於給定值的節點都移到前面,大於該值的節點順序不變。將所有小於給...