思路:一拆为二然后合并
public ListNode partition(ListNode head, int x) {
ListNode dummy1 = new ListNode(-1);
ListNode dummy2 = new ListNode(-1);
ListNode p1 = dummy1;
ListNode p2 = dummy2;
ListNode p = head;
while (p != null) {
if (p.val < x) {
p1.next = p;
p1 = p1.next;
} else {
p2.next = p;
p2 = p2.next;
}
p = p.next;
}
if (dummy1.next == null) {
return head;
} else {
p1.next = dummy2.next;
p2.next = null;//需要断开
return dummy1.next;
}
}
版权声明:本文为l1394049664原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。