/**
* 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) {
if(!head) return 0;
ListNode lhs_dummy(-1);
ListNode rhs_dummy(-1);
ListNode *lhsTail=&lhs_dummy,*rhsTail=&rhs_dummy;
//遍历链表,比x小的插入lhs后,大或等于的插入rhs后
for(ListNode *pNode=head;pNode!=0;pNode=pNode->next)
{
if(pNode->val<x)
{
lhsTail->next=pNode;
lhsTail=pNode;
}
else
{
rhsTail->next=pNode;
rhsTail=pNode;
}
}
//合并两个链表
lhsTail->next=rhs_dummy.next;
rhsTail->next=0;
return lhs_dummy.next;
}
};
Partition List
最新推荐文章于 2020-05-23 16:38:22 发布