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;
        }
    }
  • 相关阅读:
    Ansible import_playbook 导入playbook
    Ansible Playbook 变量传递
    Ansible Notify与Handler组合
    Ansible Role
    Ansible infile模块
    Ansible When有条件的运行任务
    Ansible register捕获命令输出
    Ansible Command Shell Raw模块区别
    Ansible Facts
    Ansible Jinjia2模块
  • 原文地址:https://www.cnblogs.com/birdhack/p/3969842.html
Copyright © 2011-2022 走看看