/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode() : val(0), next(nullptr) {}
* ListNode(int x) : val(x), next(nullptr) {}
* ListNode(int x, ListNode *next) : val(x), next(next) {}
* };
*/
class Solution {
public:
ListNode* partition(ListNode* head, int x) {
ListNode* newHeadLess = new ListNode(0, head);
ListNode* newHeadgreater = new ListNode();
ListNode *p = newHeadLess, *q = newHeadgreater;
while(p->next) {
if(p->next->val >= x) {
q->next = p->next;
q = q->next;
p->next = q->next;
q->next = nullptr;
}
else p = p->next;
}
p->next = newHeadgreater->next;
delete newHeadgreater;
return newHeadLess->next;
}
};
leetcode 86. 分隔链表
最新推荐文章于 2024-11-13 16:38:47 发布