[leetcode] 【链表】86. Partition List

原创 2016年05月30日 16:43:35

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.


题意

给定一个值x,把链表中小于x的值放到大于等于x的值之前。即
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) {
        ListNode small(-1);
        ListNode big(-1);
        auto small_p=&small;
        auto big_p=&big;
        for(ListNode *cur=head;cur;cur=cur->next)
        {
            if(cur->val<x)
            {
                small_p->next=cur;
                small_p=cur;
            }
            else
            {
                big_p->next=cur;
                big_p=cur;
            }
        }
        big_p->next=NULL;
        small_p->next=big.next;
        return small.next;
    }
};


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

LeetCode-86. Partition List (JAVA)分区链表

LeetCode-86. Partition List (JAVA)分区链表

Leetcode 86. Partition List(链表划分)

Partition List(链表划分)

闲话链表(三) leetcode之Partition List

描述 Given a linked list and a value x,partition it such that all nodes less than x come before nodes...

【LeetCode-面试算法经典-Java实现】【086-Partition List(将单链表进行分区)】

【086-Partition List(将单链表进行分区)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】原题  Given a linked list and a value ...

leetcode Partition List链表

leetcode Partition List链表

leetcode Partition List二分链表问题

leetcode medium:Partition List 问题 1.题目概要 2.知识点梳理及解答 3.总结 1.题目概要 给定已知链表和一个值x,将其分成两个部分,让所有小于或者等于x的值在链...

LeetCode Partition List 按值分段链表 系统分析

在原链表操作就是分为三段: 第一段:小值; 第二段:大于等于的值; 第三段:是还没有处理完的值。 但是有3个情况:1 可能开始的时候全部小值, 2 可能开始的时候全部是大值 3 分了三段的情...

leetcode:单链表之Partition List

leetcode:单链表之Partition List 题目: Given a linked list and a value x, partition it such that all nodes ...

[LeetCode] Partition List 分割单链表

给你一个单链表和一个整数x,调整单链表的元素的位置,使得前半部分的值小于x,后半部分的值大于x。 下面的算法的思路和单链表快速排序的思路是一样的。 ListNode *partition(ListN...

leetcode_86_Partition List

思路: 刚开始试着把所有小于x的结点依次插到前面去,但是因为第一个和最后结点的问题真的把我搞得焦头烂额,后来想想,用我媳妇想到的方法可能更清晰一点,用两个链表分别连接小于和大于等于x 的结点,然后再...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[leetcode] 【链表】86. Partition List
举报原因:
原因补充:

(最多只允许输入30个字)