86.分隔链表
思路:
新建两个dummy结点来记录大小部分的链表
代码:
class Solution {
public:
ListNode* partition(ListNode* head, int x) {
ListNode* dummyBig=new ListNode();
ListNode* dummySmall=new ListNode();
ListNode* big=dummyBig;
ListNode* small=dummySmall;
//遍历head
while(head!=nullptr){
if(head->val<x){
small->next=head;
small=small->next;
}else{
big->next=head;
big=big->next;
}
head=head->next;
}
//最后一个节点没有明确的指向的话,计算机既认为这个链表是没有建立完全的,它是不会停止的。
big->next = nullptr;
//大的接到小的后面
small->next=dummyBig->next;
return dummySmall->next;
}
};