[Leetcode] 148. Sort List

原创 2016年06月02日 09:45:49

题目:
Sort a linked list in O(n log n) time using constant space complexity.

思路:把两个已有顺序链表的合并想法。

具体代码:

public ListNode sortList(ListNode head) {
        if(head == null || head.next == null){
            return head;
        }

        ListNode p = head;
        ListNode end = head.next.next;

        while(end != null && end.next != null){
            p = p.next;
            end = end.next.next;
        }

        ListNode p2 = sortList(p.next);

        p.next = null;

        ListNode p1 = sortList(head);


        return MegerList(p1,p2);
    }

//  对两个已排序的链表进行合并
    public ListNode MegerList(ListNode head1,ListNode head2){
        ListNode phead = new ListNode(Integer.MIN_VALUE);
        ListNode p = phead;

        while(head1 != null && head2 != null){
            if(head1.val < head2.val){
                p.next = head1;
                head1 =head1.next;
            }
            else{
                p.next = head2;
                head2 =head2.next;
            }
            p = p.next;
        }

        if(head1 != null){
            p.next = head1;
        }
        if(head2 != null){
            p.next = head2;
        }

        return phead.next;
    }
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

LeetCode之148_Sort List

LeetCode之Sort List 时间复杂度为O(n log n),空间复杂度为常量的单链表排序算法

leetcode148 Sort List

leetcode148 Sort List 题目内容 算法分析相对于时间复杂度为O(nlogn)的排序算法,有快速排序和归并排序。这里采用的是归并排序。思路大致如下: 归并排序的大致思想就是,将链表...

LeetCode 148. Sort List--O(nlogn)时间复杂度和常数空间复杂度给链表排序

Sort a linked list in O(n log n) time using constant space complexity. package com.main; class Lis...

Leetcode148:Sort List

148. Sort List Sort a linked list in O(n log n) time using constant space complexity.

Sort List - LeetCode 148

题目描述 : Sort a linked list in O(n log n) time using constant space complexity. Hide Tags Linked Lis...
  • bu_min
  • bu_min
  • 2015年06月13日 21:02
  • 229

leetcode-Sort List-148

用NlgN的时间对链表进行排序,对空间没有要求。 这个复杂度有归并排序和快排,但是快排要求从两头扫描,链表做不到 归并排序: 两个两个一组排,之后再四个四个一组排,最后是两个有序表合并,递归 /** ...

LeetCode 148 — Sort List(C++ Java Python)

题目:http://oj.leetcode.com/problems/sort-list/ Sort a linked list in O(n log n) time using constant s...

148 Sort List [Leetcode]

题目内容: Sort a linked list in O(n log n) time using constant space complexity. 根据给出的时间复杂度,可以想到满足的排序方...

[leetcode-排序]--148. Sort List

Question: 148. Sort List Sort a linked list in O(n log n) time using constant space complexity. ...

Leetcode 148. Sort List

题目描述: Sort a linked list in O(n log n) time using constant space complexity. 我们知道对一个数组进行排序的时候, 时间复...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[Leetcode] 148. Sort List
举报原因:
原因补充:

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