双指针+双哑节点划分链表
划分链表
http://www.nowcoder.com/questionTerminal/1dc1036be38f45f19000e48abe00b12f
import java.util.*;
/*
* public class ListNode {
* int val;
* ListNode next = null;
* }
*/
public class Solution {
/**
*
* @param head ListNode类
* @param x int整型
* @return ListNode类
*/
public ListNode partition (ListNode head, int x) {
// write code here
ListNode dummy = new ListNode(-1);
ListNode dummy2 = new ListNode(-1);
ListNode p = dummy;
ListNode q = dummy2;
ListNode temp = head;
while(temp != null){
if(temp.val < x){
p.next = temp;
p = temp;
}else{
q.next = temp;
q = temp;
}
temp = temp.next;
}
p.next = dummy2.next;
q.next = null;
return dummy.next;
}
}