码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode-86-partition list

时间:2020-07-14 21:45:26      阅读:53      评论:0      收藏:0      [点我收藏+]

标签:lin   创建   partition   ret   指针   else   code   etc   一起   

思路:

1.创建两个空链表

2.遍历原始链表

3.将大于x的node中的val放入到maxlist,将小于node的放入到minlist中

4.将两个链表拼接在一起

/**
 * 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) {
        //创建两个空链表
        ListNode*minlink=new ListNode(0);
        ListNode*maxlink=new ListNode(0);
        //定义两个链表头指针;
        ListNode *minp=minlink;
        ListNode *maxp=maxlink;
        //创建head链表的一个临时指针
        ListNode *temp=head;
        while(temp!=NULL)
        {
            if(temp->val<x)
            {
                minp->next=temp;
                temp=temp->next;
                minp=minp->next;
                minp->next=NULL;
            }
            else
            {
                maxp->next=temp;
                temp=temp->next;
                maxp=maxp->next;
                maxp->next=NULL;
            }
            //temp=temp->next;
        }
        //将连个链表链接在一起
        minp->next=maxlink->next;
        return minlink->next;
    }
};

leetcode-86-partition list

标签:lin   创建   partition   ret   指针   else   code   etc   一起   

原文地址:https://www.cnblogs.com/Sunshineboy1/p/13301304.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!