zoukankan      html  css  js  c++  java
  • [leetcode]Insertion Sort List

    如果那天前先做了这道题就好了。。言归正传,需要两个dummy节点,本质上就是从原来的链表中删除最小的,加到新的链表中去。

    class Solution {
    public:
        ListNode *insertionSortList(ListNode *head) {
            ListNode *o_dummy = new ListNode(0);
            ListNode *n_dummy = new ListNode(0);
            o_dummy->next = head;
            ListNode *last = n_dummy;
            while (o_dummy->next != NULL) {
                ListNode *prev = o_dummy;
                ListNode *node = prev->next;
                // find node with min val
                ListNode *min_node = node;
                ListNode *prev_node = prev;
                while (node != NULL) {
                    if (node->val < min_node->val) {
                        min_node = node;
                        prev_node = prev;
                    }
                    node = node->next;
                    prev = prev->next;
                }
                prev_node->next = min_node->next;
                
                // insert to new list
                min_node->next = NULL;
                last->next = min_node;
                last = min_node;
            }
            return n_dummy->next;
        }
    };
    

      

  • 相关阅读:
    iOS数据持久化的方式
    Runtime
    <02>
    <01>
    <02>
    UIActivityIndicatorView
    <01>数据存储
    UI<10>
    UI<09>
    UI<08>
  • 原文地址:https://www.cnblogs.com/lautsie/p/3546609.html
Copyright © 2011-2022 走看看