Middle-题目62:86. Partition List

原创 2016年05月31日 16:32: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.
题目大意:
给出一个链表和一个值x,把<x的节点都搬到x前面,大于x的节点都搬到x后面,并保持原有的顺序。
题目分析:
类似快排,注意一些边界情况和特殊情况即可。多看看错误的test case,多在纸上画画就好了。
源码:(language:java)

public class Solution {
    public static ListNode partition(ListNode head, int x) {
        if(head == null || head.next == null) return head;
        ListNode beforex = null,afterx = null;
        for(ListNode node = head; node!=null; node=node.next) {
            if(node.val<x) {
                if(beforex == null)
                    beforex = new ListNode(node.val);
                else {
                    ListNode temp = beforex;
                    while(temp.next!=null)
                        temp=temp.next;
                    temp.next=new ListNode(node.val);
                }
            }
            else {
                if(afterx == null)
                    afterx = new ListNode(node.val);
                else {
                    ListNode temp = afterx;
                    while(temp.next!=null)
                        temp=temp.next;
                    temp.next=new ListNode(node.val);
                }
            }
        }
        ListNode temp = beforex;
        if (temp!=null) {
            while(temp.next!=null)
                temp=temp.next;
            temp.next=afterx;
            return beforex;
        }
        else
            return afterx;
    }
}

成绩:
1ms,beats 4.36%,众数1ms,95.64%
cmershen的碎碎念:
本题的代码写的很复杂,以后应考虑有没有可以合并的边界情况。

版权声明:完整版Leetcode题解请出门左转https://github.com/cmershen1/leetcode/tree/master/docs

【leetcode】【86】Partition List

一、问题描述 Given a linked list and a value x, partition it such that all nodes less than x come bef...
  • xiaoliucool1314
  • xiaoliucool1314
  • 2016年03月03日 11:16
  • 682

LeetCode 86(Partition List)java

原题:Given a linked list and a value x, partition it such that all nodes less than x come before n...
  • Jassy1994
  • Jassy1994
  • 2016年11月24日 16:02
  • 434

【LEETCODE】86- Partition List [Python]

Given a linked list and a value x, partition it such that all nodes less than x come before nodes gr...
  • aliceyangxi1987
  • aliceyangxi1987
  • 2016年02月26日 10:46
  • 1127

leetcode_86_Partition List

思路: 刚开始试着把所有小于x的结点依次插到前面去,但是因为第一个和最后结点的问题真的把我搞得焦头烂额,后来想想,用我媳妇想到的方法可能更清晰一点,用两个链表分别连接小于和大于等于x 的结点,然后再...
  • dfb198998
  • dfb198998
  • 2015年02月05日 21:57
  • 1054

LeetCode 86 Partition List (Python详解及实现)

【题目】 Given a linked list and a value x,partition it such that all nodes less than x come before nod...
  • yangjingjing9
  • yangjingjing9
  • 2017年08月09日 17:15
  • 118

86. Partition List(list)

题目: Given a linked list and a value x, partition it such that all nodes less than x come before n...
  • u011539372
  • u011539372
  • 2016年08月24日 21:33
  • 68

LeetCode 86. Partition List

用两条链表维护两个partion, 最后把它们hebing
  • u014674776
  • u014674776
  • 2014年07月23日 04:54
  • 552

Leetcode ☞ 86. Partition List ☆

给一个链表和一个值。将链表中小于该值的节点放在前面,大于等于放在后。保持原先的相对顺序...
  • Dr_Unknown
  • Dr_Unknown
  • 2016年03月06日 16:40
  • 196

86. Partition List。

Given a linked list and a value x, partition it such that all nodes less than x come before nodes gr...
  • Leafage_M
  • Leafage_M
  • 2017年09月26日 23:07
  • 362

86. Partition List(unsolved)

Given a linked list and a value x, partition it such that all nodes less than x come before nodes gr...
  • gdmmzmj
  • gdmmzmj
  • 2017年03月02日 15:09
  • 61
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Middle-题目62:86. Partition List
举报原因:
原因补充:

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