zoukankan      html  css  js  c++  java
  • Leetcode 21. Merge Two Sorted Lists(easy)

    Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.

     递归实现: 

    /**
     * Definition for singly-linked list.
     * struct ListNode {
     *     int val;
     *     ListNode *next;
     *     ListNode(int x) : val(x), next(NULL) {}
     * };
     */
    class Solution {
    public:
        ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
         if (l1 == NULL){
             return l2;
         }
         if (l2 == NULL){
            return l1;
         }
            
         if (l1 -> val <= l2 -> val){
             l1 -> next = mergeTwoLists(l1 -> next, l2);
             return l1;
         }
         else{
             l2 -> next = mergeTwoLists(l1, l2 -> next);
             return l2;
         }
            
        }
    };

     非递归实现:

    /**
     * Definition for singly-linked list.
     * struct ListNode {
     *     int val;
     *     ListNode *next;
     *     ListNode(int x) : val(x), next(NULL) {}
     * };
     */
    class Solution {
    public:
        ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
            if (l1 == NULL){
                return l2;
            }
            if (l2 == NULL){
                return l1;
            }
            ListNode head(0);   // 新建一个结点,不能是指向空的指针,否则它的指向不会改变
            ListNode * cur = &head;
            while (l1 && l2){
                if (l1 -> val <= l2 -> val){
                    cur -> next = l1;
                    l1 = l1 -> next;
                }else{
                    cur -> next = l2;
                    l2 = l2 -> next;
                }
                cur = cur -> next;
            }
            if (l1){
                cur -> next = l1;
            }
            if (l2){
                cur -> next = l2;
            }
            return head.next;  // 注意head此时为一个实体对象,不是一个指针,所以要用.来指示next.为什是next??
        }
    };
  • 相关阅读:
    Codeforces Round #366 (Div. 2)
    Codeforces Round #367 (Div. 2)
    带权并查集小练
    Codeforces Round #368 (Div. 2)
    Codeforces Round #396 (Div. 2)
    Codeforces Round #376 (Div. 2)
    工作流
    程序员之江湖感想
    工作流设计简介
    程序员常去的103个网站
  • 原文地址:https://www.cnblogs.com/simplepaul/p/7854242.html
Copyright © 2011-2022 走看看