zoukankan      html  css  js  c++  java
  • LeetCode(147): Insertion Sort List

    Insertion Sort List:Sort a linked list using insertion sort.

    题意:使用插入排序的方式对链表进行排序。

    思路:根据插入排序的思路,进行插入操作。

    代码:

    public ListNode insertionSortList(ListNode head) {
            if(head==null||head.next==null) return head;
            
            ListNode p = head.next;   //指向第2个结点
            ListNode q= head;        //指向头结点
            ListNode preq= null;
            ListNode pNext = null;
            head.next = null;  //将head.next置空,使头结点和链表断开
            while(p!=null){   //用p进行遍历
                q = head;    //用q保存头结点
                pNext = p.next; //pNext保存p.next
                while(q!=null && p.val>q.val){  //在新的链表中查找小于等于p.val的节点
                    preq = q;
                    q=q.next;
                }
                if(q==head){  //如果是头结点,则将其插入到头结点
                    p.next = q; 
                    head = p; 
                }else{ //否则进行普通的插入操作
                    p.next = preq.next;
                    preq.next = p;
                }
                p=pNext;
                
            }
            return head;
            
        }
  • 相关阅读:
    HTTP 缓存图解
    http协议构成整理
    HTTP2.0
    Event Loop
    斐波那契数列
    归并排序
    快速排序
    史上最全前端资源
    Js 将 Date 转化为指定格式的String
    vue-cli webpack全局引入jquery
  • 原文地址:https://www.cnblogs.com/Lewisr/p/5134511.html
Copyright © 2011-2022 走看看