Insertion Sort List

原创 2016年05月31日 15:58:12

Sort a linked list using insertion sort.

思路:

使用插入排序的方式将一个链表进行排序。可以根据给定的节点,先返回插入位置,然后将节点插入即可。

代码如下所示:

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    ListNode* insertionSortList(ListNode* head) {
        ListNode *dummy=new ListNode(0);
        ListNode *p=head;
        while(p)
        {
            ListNode *position=getInsertPosition(dummy,p->val);
            ListNode *tmp=position->next;
            ListNode *tmp2=p->next;
            position->next=p;
            p->next=tmp;
            p=tmp2;
        }
        return dummy->next;
    }
    
    //寻找链表中的插入位置
    ListNode* getInsertPosition(ListNode *dummy,int val)
    {
        ListNode *p=dummy->next;
        
        if(p==NULL)
        {
            return dummy;
        }
        ListNode *pre=dummy;
        while(p)
        {
            if(p->val<val)
            {
                pre=p;
                p=p->next;
            }
            else
                break;
        }
        return pre;
    }
};


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

LeetCode(147) Insertion Sort List

题目如下: Sort a linked list using insertion sort. 分析如下: 使用插入排序的方法,对一个链表进行排序。看上去题目比较简单。 不过坑还是有几个的: 1 要记得...
  • feliciafay
  • feliciafay
  • 2014年01月28日 11:32
  • 2512

Leetcode Insertion Sort List 解题报告

http://oj.leetcode.com/problems/insertion-sort-list/ Sort a linked list using insertion sort. 基本分析:...
  • worldwindjp
  • worldwindjp
  • 2014年02月11日 09:23
  • 5446

147. Insertion Sort List (python)

Sort a linked list using insertion sort. 题意:采用插入排序法对链表进行排序 思路:类似于扑克牌按照从小到大插入,将第i个元素与左边已排序的元素比较,找到位...
  • qq_28119401
  • qq_28119401
  • 2016年09月19日 22:11
  • 283

Insertion Sort List -- LeetCode

原题链接: http://oj.leetcode.com/problems/insertion-sort-list/  这道题跟Sort List类似,要求在链表上实现一种排序算法,这道题是指定实现...
  • linhuanmars
  • linhuanmars
  • 2014年03月14日 22:45
  • 15166

插入排序Sort a linked list using insertion sort in Java

Sort a linked list using insertion sort in Java package algorithm.sort; class ListNode { int ...
  • u013063153
  • u013063153
  • 2015年08月25日 10:41
  • 620

147. Insertion Sort List【M】Java

Sort a linked list using insertion sort. Subscribe to see which companies asked this qu...
  • sscssz
  • sscssz
  • 2016年02月29日 15:41
  • 420

LeetCode147: Insertion Sort List

Sort a linked list using insertion sort. 本题很简单,用插入排序方法对链表进行排序。可以构建一个临时的链表,然后将待排序的链表的每一个节点插入到临时链表中。...
  • sunao2002002
  • sunao2002002
  • 2015年05月04日 19:24
  • 966

LeetCode147—Insertion Sort List

LeetCode147 Insertion Sort List
  • zhangxiao93
  • zhangxiao93
  • 2016年11月16日 20:10
  • 216

5-1 Insertion or Heap Sort (9分)

堆排序和插入排序之间的区别程序题
  • csucbMIT
  • csucbMIT
  • 2016年12月14日 13:37
  • 517

插入排序算法(Insertion Sort)的两种实现

插入排序算法的两种实现。
  • beiyeqingteng
  • beiyeqingteng
  • 2010年07月15日 04:21
  • 3438
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Insertion Sort List
举报原因:
原因补充:

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