/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* partition(ListNode* head, int x) {
//一个链表存储>x的,一个链表存储≤x的,最后连起来即可
auto dummy=new ListNode(-1),dummy2=new ListNode(-1);
auto tail=dummy,tail2=dummy2;
for(auto p=head;p;){
auto t=p->next;
if(p->val<x) tail=tail->next=p;
else tail2=tail2->next=p;
p->next=nullptr;
p=t;
}
tail->next=dummy2->next;
return dummy->next;
}
};
面试题2.04. 分割链表
最新推荐文章于 2024-10-03 21:46:55 发布
本文介绍了一个名为Solution的类中的partition函数,该函数用于将给定的单链表分割成两部分:小于x的节点和大于等于x的节点,然后连接这两部分链表。
摘要由CSDN通过智能技术生成