• Merge Two Sorted Lists


    两个指针的做法,但比起2个数组有序的数组的话,链表做更容易,因为当一个链表遍历结束后,tail指针并不需要遍历另一个链表,只要直接指向它就行

    /**
     * Definition for singly-linked list.
     * struct ListNode {
     *     int val;
     *     struct ListNode *next;
     * };
     */
    struct ListNode *mergeTwoLists(struct ListNode *l1, struct ListNode *l2) {
        struct ListNode *head = (struct ListNode *)malloc(sizeof(struct ListNode));
        struct ListNode *tail = head;
        while(l1&&l2){
            if(l1->val<l2->val){
                tail->next = l1;
                l1 = l1->next;
            }else {
                tail->next = l2;
                l2 = l2->next;
            }
            tail = tail->next;
        }
        //很傻比的后面全部遍历一遍
        while(l1){
            tail->next = l1;
            l1 = l1->next;
            tail = tail->next;
        }
        while(l2){
            tail->next = l2;
            l2 = l2->next;
            tail = tail->next;
        }
        return head->next;
    }
    /**
     * Definition for singly-linked list.
     * struct ListNode {
     *     int val;
     *     struct ListNode *next;
     * };
     */
    struct ListNode *mergeTwoLists(struct ListNode *l1, struct ListNode *l2) {
        struct ListNode *head = (struct ListNode *)malloc(sizeof(struct ListNode));
        struct ListNode *tail = head;
        while(l1&&l2){
            if(l1->val<l2->val){
                tail->next = l1;
                l1 = l1->next;
            }else {
                tail->next = l2;
                l2 = l2->next;
            }
            tail = tail->next;
        }
        if(!l1)tail->next = l2;
        else if(!l2) tail->next = l1;
        return head->next;
    }
  • 相关阅读:
    二、DBMS_JOB(用于安排和管理作业队列)
    Oracle 常用系统包
    DBMS_OUTPUT(用于输入和输出信息)
    C#获取当前主机硬件信息
    Centos安装mysql5.7
    Rsync安装和配置
    利用Docker编译Hadoop 3.1.0
    hadoop集群环境搭建
    axios请求、拦截器
    import时,什么时候使用花括号'{ }'
  • 原文地址:https://www.cnblogs.com/llei1573/p/4335972.html
Copyright © 2020-2023  润新知