题目:
解答:
类似于快排的二分,注意头尾节点,
代码:
class Solution {
public:
ListNode *partition(ListNode *head, int x) {
ListNode *little, *large;
ListNode *largeHead = NULL;
ListNode *littleHead = NULL;
little = large = NULL;
ListNode *temp = head;
while (temp)
{
if (temp->val < x)
{
//头结点
if (little == NULL)
{
little = temp;
littleHead = little;
}
else
{
little->next = temp;
little = little->next;
}
}
else
{
//头结点
if (large == NULL)
{
large = temp;
largeHead = large;
}
else
{
large->next = temp;
large = large->next;
}
}
temp = temp->next;