链表的操作是最容易让人迷糊的,但只要思路清晰,题目就不难
新建两个头,一个接小于x的,另一个接大于等于的
要注意的是把大于等于的尾巴断掉,不然会有环产生
class Solution {
public ListNode partition(ListNode head, int x) {
ListNode a = new ListNode(0), b = new ListNode(0);
ListNode ai = a, bi = b;
while(head != null){
if(head.val < x){
ai.next = head;
ai = ai.next;
}else{
bi.next = head;
bi = bi.next;
}
head = head.next;
}
ai.next = b.next;
bi.next = null;
return a.next;
}
}