面试题02.04.分割链表
小于给定元素的放前面,大于给定元素的放后面
新建两个链表进行操作
ListNode* partition(ListNode* head, int x) {
if(head == nullptr)
return nullptr;
ListNode *cur = head;
ListNode *l = new ListNode(0);
ListNode *s = new ListNode(0);
ListNode *ll = l;
ListNode *ss = s;
while(cur)
{
if(cur->val >= x)
{
ll->next = cur;
ll = ll->next;
cur = cur->next;
ll->next = nullptr;
}
else
{
ss->next = cur;
ss = ss->next;
cur = cur->next;
ss->next = nullptr;
}
}
ss->next = l->next;
return s->next;
}
保持好奇心!

浙公网安备 33010602011771号