题目要求:
分析:
对于这道题目,只要定义两个链表,一个链表存放<x
的值,另一个链表存放≥x
的值即可。
这里要注意,链表最后一个值的next一定要指向null,不然会报如下错误:
Error - Found cycle in the ListNode
具体代码如下:
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode partition(ListNode head, int x) {
ListNode dummy1 = new ListNode(0);
ListNode dummy2 = new ListNode(0);
ListNode node1 = dummy1;
ListNode node2 = dummy2;
ListNode cur = head;
while(cur != null) {
if(cur.val >= x) {
node1.next = cur;
node1 = node1.next;
cur = cur.next;
node1.next = null;
} else {
node2.next = cur;
node2 = node2.next;
cur = cur.next;
node2.next = null;
}
}
node2.next = dummy1.next;
return dummy2.next;
}
}