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

    这题一开始想新建一个list,结果MLE了,后来想了想不用新建,insertion的概念理解好就行,具体编程部分不难

     1 /**
     2  * Definition for singly-linked list.
     3  * struct ListNode {
     4  *     int val;
     5  *     ListNode *next;
     6  *     ListNode(int x) : val(x), next(NULL) {}
     7  * };
     8  */
     9 class Solution {
    10 public:
    11     ListNode *insertionSortList(ListNode *head) {
    12         if (!head) return NULL;
    13         ListNode *hpre = new ListNode(0);
    14         hpre->next = head;
    15         ListNode *pre = head;
    16         head = head->next;
    17         while (head) {
    18             if (head->val > pre->val) {
    19                 head = head->next;
    20                 pre = pre->next;
    21             }
    22             else {
    23                 pre->next = head->next;
    24                 ListNode *tmp = hpre;
    25                 while (head->val > tmp->next->val) tmp = tmp->next;
    26                 head->next = tmp->next;
    27                 tmp->next = head;
    28                 head = pre->next;
    29             }
    30         }
    31         return hpre->next;
    32     }
    33 };

     C#

     1 /**
     2  * Definition for singly-linked list.
     3  * public class ListNode {
     4  *     public int val;
     5  *     public ListNode next;
     6  *     public ListNode(int x) { val = x; }
     7  * }
     8  */
     9 public class Solution {
    10     public ListNode InsertionSortList(ListNode head) {
    11         if (head == null) return null;
    12         ListNode hpre = new ListNode(0);
    13         hpre.next = head;
    14         ListNode pre = head;
    15         head = head.next;
    16         while (head != null) {
    17             if (head.val > pre.val) {
    18                 head = head.next;
    19                 pre = pre.next;
    20             }
    21             else {
    22                 pre.next = head.next;
    23                 ListNode tmp = hpre;
    24                 while (head.val > tmp.next.val) tmp = tmp.next;
    25                 head.next = tmp.next;
    26                 tmp.next = head;
    27                 head = pre.next;
    28             }
    29         }
    30         return hpre.next;
    31     }
    32 }
    View Code
  • 相关阅读:
    Windows系统下八大具有高逼格的DOS命令之一【ping】
    NOIP初赛 之 逻辑运算
    动态规划 —— 背包问题一 专项研究学习
    使用前端原生 js,贪吃蛇小游戏
    纯html+css制作3D立方体和动画效果
    css3实现3D动画轮播图
    原生js的弹力小球
    小球的问题
    早期练手:功能相对比较完善的 js 计算器
    自动布局简介
  • 原文地址:https://www.cnblogs.com/yingzhongwen/p/3510315.html
Copyright © 2011-2022 走看看