LeetCode 86. 分隔链表
中等标签还以为有什么更厉害的解法,典型四指针一次遍历;
注意一下空结点的判定问题;
ListNode* partition(ListNode* head, int x) {
ListNode* h1 =new ListNode(-1);
ListNode* h2 = new ListNode(-1);
ListNode* p1 = h1;
ListNode* p2 = h2;
while (head != NULL) {
if (x > head->val) {
p1->next = new ListNode(head->val);
p1 = p1->next;
}
else {
p2->next = new ListNode(head->val);
p2 = p2->next;
}
head = head->next;
}
p1->next = h2->next;
return h1->next;
}

浙公网安备 33010602011771号