ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

LintCode-165 · 合并两个排序链表-题解

2022-01-28 13:00:59  阅读:148  来源: 互联网

标签:ListNode 题解 LintCode next 链表 l2 l1 null


描述:
将两个排序(升序)链表合并为一个新的升序排序链表

样例 1:
输入: list1 = null, list2 = 0->3->3->null
输出: 0->3->3->null
样例2:
输入:  list1 =  1->3->8->11->15->null, list2 = 2->null
输出: 1->2->3->8->11->15->null

解题思路:
先对特殊情况进行判断,再创建一个指针p用来接收两个链表的头节点中较小的那一个,然后将这个链表的next和另一个链表再次递归下去。

AC代码如下:

/**
 * Definition of singly-linked-list:
 * class ListNode {
 * public:
 *     int val;
 *     ListNode *next;
 *     ListNode(int val) {
 *        this->val = val;
 *        this->next = NULL;
 *     }
 * }
 */

class Solution {
public:
    /**
     * @param l1: ListNode l1 is the head of the linked list
     * @param l2: ListNode l2 is the head of the linked list
     * @return: ListNode head of linked list
     */
    ListNode * mergeTwoLists(ListNode * l1, ListNode * l2) {
        // write your code here
        if(!l1 && l2) return l2;
        else if(l1 && !l2) return l1;
        else if(!l1 && !l2) return NULL;
        ListNode *p;
        if(l1->val < l2->val){
            p=l1;
            p->next=mergeTwoLists(l1->next,l2);
        }
        else{
            p=l2;
            p->next=mergeTwoLists(l1,l2->next);
        }
        return p;
    }
};

 

标签:ListNode,题解,LintCode,next,链表,l2,l1,null
来源: https://www.cnblogs.com/ygsr/p/15852464.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有