86. Partition List
Given a linked list and a value x, partition it such that all nodes less than x come before nodes greater than or equal to x.
You should preserve the original relative order of the nodes in each of the two partitions.
For example,
Given 1->4->3->2->5->2
and x = 3,
return 1->2->2->4->3->5
.
题目含义:所有小于X的元素都排在大于等于X的前面。
思路:创建两个链表,分别连接比x大的和小的数,最后构成一个整体
1 public ListNode partition(ListNode head, int x) { 2 ListNode small = new ListNode(0); 3 ListNode big = new ListNode(0); 4 ListNode smallCur = small; 5 ListNode bigCur = big; 6 while (head != null) 7 { 8 if (head.val<x) 9 { 10 smallCur.next = head; 11 smallCur = head; 12 }else 13 { 14 bigCur.next =head; 15 bigCur = head; 16 } 17 head=head.next; 18 } 19 bigCur.next = null; 20 smallCur.next = big.next; 21 return small.next; 22 }