zoukankan      html  css  js  c++  java
  • LeetCode Insertion Sort List

    Sort a linked list using insertion sort.

    题目意思是用插入排序对单链表进行排序,做法是返回一个新的单链表,每次插入的时候都添加一个新建的节点。

    /**
     * Definition for singly-linked list.
     * public class ListNode {
     *     int val;
     *     ListNode next;
     *     ListNode(int x) {
     *         val = x;
     *         next = null;
     *     }
     * }
     */
    public class Solution {
        public ListNode insertionSortList(ListNode head) {
           if (head==null || head.next==null) {
            return head;
           }
           ListNode first = new ListNode(head.val);
           ListNode curr = head.next;
           ListNode last = first,temp=first;
           
           while (curr!=null) {
            if (curr.val>=last.val) {
                ListNode newlast = new ListNode(curr.val);
                last.next=newlast;
                last=newlast;
            }else {
                if (first.val>=curr.val) {
                    ListNode newfirst=new ListNode(curr.val);
                    newfirst.next=first;
                    first=newfirst;
                }else {
                    temp=first;
                    while (curr.val>temp.val&&curr.val>temp.next.val) {
                        temp=temp.next;
                    }
                    ListNode newmiddle = new ListNode(curr.val);
                    newmiddle.next=temp.next;
                    temp.next=newmiddle;
                }
            }    
            curr=curr.next;
        }
           return first;
        }
    }
  • 相关阅读:
    jQuery教程
    AJAX请求 $.ajax方法的使用
    smarty block_function
    smarty
    位运算版本的交换两数
    提取字符串中的数字
    vue地址插件多级联动自适应 + github地址
    vue插件
    网页title旁边的小图片
    二十三种设计模式[14]
  • 原文地址:https://www.cnblogs.com/birdhack/p/3969842.html
Copyright © 2011-2022 走看看