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

    class Solution {
    public:
        ListNode *partition(ListNode *head, int x) {
            if(!head || !(head->next) ) return head;
            ListNode *current = head;
            ListNode *smallPointer = NULL; //point to the last node <x
            ListNode *largePointer = NULL; //point to the last node >x
            while(current)
            {
                if(current->val >= x)
                {
                    largePointer = current;
                    current = current->next;
                }
                else
                {
                    if(!largePointer)
                    {
                        smallPointer = current;
                        current = current->next;
                    }
                    else if(smallPointer)
                    {
                        largePointer->next = smallPointer->next;
                        smallPointer -> next = current;
                        current = current->next;
                        smallPointer = smallPointer->next;
                        smallPointer->next = largePointer->next;
                        largePointer->next = current;
                    }
                    else //head
                    {
                        smallPointer = current;
                        current = current->next;
                        smallPointer->next = head;
                        head = smallPointer;
                        largePointer->next = current;
                    } 
                }
            }
            return head;
            
        }
    };
  • 相关阅读:
    windows系统中ubuntu虚拟机安装及web项目到服务上(二)
    windows系统中ubuntu虚拟机安装及web项目到服务上(一)
    每个配置xml的含义作用
    第三天气接口使用总结
    js模式学习
    mac下php环境配置
    struts2
    MySQL常用命令
    JavaMail邮件开发
    文件上传与下载
  • 原文地址:https://www.cnblogs.com/qionglouyuyu/p/4853113.html
Copyright © 2011-2022 走看看