zoukankan      html  css  js  c++  java
  • 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.

    /**
     * Definition for singly-linked list.
     * struct ListNode {
     *     int val;
     *     ListNode *next;
     *     ListNode(int x) : val(x), next(NULL) {}
     * };
     
    */
    class Solution {
    public:
        ListNode *partition(ListNode *head, int x) 
        {
            if(head==NULL || head->next==NULL) return head;
            
            ListNode* pLarge;
            ListNode* pSmall;
            ListNode* pMid;
            
            if(head->val<x) pSmall=head;
            else
            {
                pLarge=head;
                pMid=head;
                while(pMid->next!=NULL && pMid->next->val>=x) pMid=pMid->next;
                if(pMid->next==NULL) return head;
                head=pMid->next;
                pMid->next=head->next;
                head->next=pLarge;
                pSmall=head;
            }
            
            while(true)
            {
                pMid=pSmall;
                
                while(pMid->next!=NULL && pMid->next->val>=x) pMid=pMid->next;
                if(pMid->next==NULL) break;
                
                pLarge=pMid->next;
                pMid->next=pLarge->next;
                pLarge->next=pSmall->next;
                pSmall->next=pLarge;
                
                while(pSmall->next!=NULL && pSmall->next->val<x) pSmall=pSmall->next;
                if(pSmall->next==NULL) break;
            }
            return head;
        }
    }; 
  • 相关阅读:
    JS 获取鼠标位置
    Asp 2.0动态加载用户控件(Ascx)
    水晶报表学习之三(参数传递问题)
    C#中分割字符串的几种方法
    StringUtils类使用
    页面自动刷新,HTML代码,呵呵,可以去刷新人气拉!
    水晶报表预览时有线条,打印的时候无线条,这个该怎么处理?
    Online、Interline的意思。
    linux下的g++编译【转载】
    c++中const与指针总结
  • 原文地址:https://www.cnblogs.com/erictanghu/p/3759540.html
Copyright © 2011-2022 走看看