前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >画解算法:21. 合并两个有序链表

画解算法:21. 合并两个有序链表

作者头像
灵魂画师牧码
发布2019-06-27 17:41:36
5260
发布2019-06-27 17:41:36
举报
文章被收录于专栏:灵魂画师牧码灵魂画师牧码

题目链接

https://leetcode-cn.com/problems/merge-two-sorted-lists/

题目描述

将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。

示例:

代码语言:javascript
复制
输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4

解题方案

思路

  • 标签:链表、递归
  • 这道题可以使用递归实现,新链表也不需要构造新节点,恰好是文章套路解决递归问题的极好验证,我们下面列举递归三个要素
  • 终止条件:两条链表分别名为l1和l2,当l1为空或l2为空时结束
  • 返回值:每一层调用都返回排序好的链表头
  • 本级递归内容:如果l1的val值更小,则将l1.next与排序好的链表头相接,l2同理
  • O(m+n),m为l1的长度,n为l2的长度

代码

  • Java版本
代码语言:javascript
复制
/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
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;
        }
    }
}
  • JavaScript版本
代码语言:javascript
复制
/**
 * Definition for singly-linked list.
 * function ListNode(val) {
 *     this.val = val;
 *     this.next = null;
 * }
 */
/**
 * @param {ListNode} l1
 * @param {ListNode} l2
 * @return {ListNode}
 */
var mergeTwoLists = function(l1, 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;
    }
};

画解

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-06-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 牧码啦 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目链接
  • 题目描述
  • 解题方案
    • 思路
      • 代码
        • 画解
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档