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。最后把它们连起来。注意把第二个链表最后一个元素置为NULL。不然可能产生死循环。
      
         1
      
      
        class
      
      
         Solution {
      
      
         2
      
      
        public
      
      
        :
      
      
         3
      
           ListNode *partition(ListNode *head, 
      
        int
      
      
         x) {
      
      
         4
      
               ListNode n1(
      
        0
      
      ), n2(
      
        0
      
      
        );
      
      
         5
      
               ListNode *p1 = &n1, *p2 = &
      
        n2;
      
      
         6
      
      
         7
      
      
        while
      
       (head !=
      
         NULL) {
      
      
         8
      
      
        if
      
       (head->val <
      
         x) {
      
      
         9
      
                       p1->next =
      
         head;
      
      
        10
      
                       p1 = p1->
      
        next;
      
      
        11
      
                   } 
      
        else
      
      
         {
      
      
        12
      
                       p2->next =
      
         head;
      
      
        13
      
                       p2 = p2->
      
        next;
      
      
        14
      
      
                    }
      
      
        15
      
                   head = head->
      
        next;
      
      
        16
      
      
                }
      
      
        17
      
               p2->next =
      
         NULL;
      
      
        18
      
               p1->next =
      
         n2.next;
      
      
        19
      
      
        return
      
      
         n1.next;
      
      
        20
      
      
            }
      
      
        21
      
       };
    
  这里n1和n2不用new,省得最后还要delete.


 
					 
					