码迷,mamicode.com
首页 > 其他好文 > 详细

【Leetcode】147. Insertion Sort List

时间:2018-02-27 12:44:39      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:一个   using   tips   public   头结点   之间   思路   gpo   插入   

Question:

Sort a linked list using insertion sort.

Tips:

使用插入排序,对一个链表进行排序。

思路:

新建一个头结点newHead,设置一个pre指针,指向newHead。

cur指针,指向原来的头结点head。

当pre.next的值大于cur的值,就将cur插入到pre之后,否则pre指针后移。

插入一个值之后再将pre指向newHead。

代码:

public ListNode insertionSortList(ListNode head) {
         if(head==null ||head.next==null) return head;
         //新的头结点
            ListNode newHead= new ListNode(-1);
            ListNode pre=newHead;
            ListNode cur=head;
            ListNode next=null;
            while(cur!=null){
                next=cur.next;
                //pre的next值小于cur的值,pre指针后移。即找到cur应该插入的位置。
                while(pre.next!=null && pre.next.val<cur.val){
                    pre=pre.next;
                }
          //将cur插到pre与pre.next之间 cur.next
=pre.next; pre.next=cur; cur=next; pre=newHead; } return newHead.next; }

 

【Leetcode】147. Insertion Sort List

标签:一个   using   tips   public   头结点   之间   思路   gpo   插入   

原文地址:https://www.cnblogs.com/yumiaomiao/p/8478176.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!