package newcoder;
class ListNode {
int val;
ListNode next;
ListNode(int x) { val = x; }
}
public class Solution {
public static void main(String args[])
{
Solution
obj=new Solution();
ListNode h=new ListNode(2);
h.next=new ListNode(1);
obj.partition(h, 1);
}
public ListNode partition(ListNode head, int x) {
if(head==null)
{
return head;
}
ListNode result=null;
ListNode current=head;
ListNode bigList=null;
ListNode resultTal=null;
ListNode bigTal=null;
if(head.val>=x)
{
bigList=head;
while(current.next!=null&¤t.next.val>=x)
{
current=current.next;
}
resultTal=result=current.next;
bigTal=current;
}
else
{
result=head;
while(current.next!=null&¤t.next.val<x)
{
current=current.next;
}
bigTal=bigList=current.next;
resultTal=current;
}
if(current.next!=null)//current.next 已经处理
{
current=current.next.next;
}
else
{
current=null;
}
while(current!=null)
{
if(current.val<x)
{
resultTal.next=current;
resultTal=current;
}
else
{
bigTal.next=current;
bigTal=current;
}
current=current.next;
}
if(bigTal!=null)
{
bigTal.next=null;
}
if(result==null)
{
return bigList;
}
resultTal.next=bigList;
return result;
}
}
leetcode Partition List
最新推荐文章于 2019-07-16 09:33:43 发布