• 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
  • 相关阅读:
    右键点击属性截图不了
    win7再分配磁盘新加卷
    oracle逻辑存储结构
    ORACLE spool打印
    oracle实例状态
    基于SCN增量恢复DG同步
    delete误删数据使用SCN恢复
    DG中模拟failover故障与恢复
    NFS挂载遇到的问题
    关于“身为父母”
  • 原文地址:https://www.cnblogs.com/yingzhongwen/p/3510315.html
Copyright © 2020-2023  润新知