leetcode-86-partition list

Posted sunshineboy1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode-86-partition list相关的知识,希望对你有一定的参考价值。

思路:

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的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode 86. Partition List

Leetcode 86. Partition List

Leetcode 86. Partition List

LeetCode86 Partition List

leetcode86 - Partition List - medium

[LeetCode] 86. Partition List Java