双指针法构造两个链表 一个是小于这个值的,一个是大于等于这个值的链表
开始理解错了以为x是链表的索引。。。。。。
public ListNode partition(ListNode head, int x) {
ListNode dummyBefore = new ListNode(Integer.MAX_VALUE);
ListNode dummyAfter = new ListNode(Integer.MAX_VALUE);
ListNode before = dummyBefore;
ListNode after = dummyAfter;
while(head!=null){
if(head.val<val){
before.next = head;
before = head;
}else{
after.next = head;
after = head;
}
head = head.next;
}
after.next = null;
before.next = dummyAfter.next;
return dummyBefore.next;
}