• leetcode_21.c++合并两个有序列表


    方法一:递归操作。

    /**
     * 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) {
            ListNode* heard=new ListNode(-1);
            ListNode* p=heard;
            while(l1!=NULL && l2!=NULL){
                if(l1->val<=l2->val){
                    p->next=l1;
                    l1=l1->next;
                }else{
                    p->next=l2;
                    l2=l2->next;
                }
                p=p->next;
               
            }
             p->next=l1==NULL?l2:l1;//判断谁先空。
           return heard->next;
        }
    };
    tianjiale菜鸟名企梦
  • 相关阅读:
    Pytorch笔记
    Anaconda使用
    最大流最小割算法
    pycallgraph--使用pycallgraph绘制Python函数调用关系图
    论文表格--三线表
    0514数据结构--递归、排序和查找
    0511操作系统
    0510操作系统
    ACWING算法提高课-动态规划
    删括号
  • 原文地址:https://www.cnblogs.com/tianjiale/p/11063222.html
Copyright © 2020-2023  润新知