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