【一天一道Leetcode】合并两个有序链表

共 1878字,需浏览 4分钟

 ·

2021-03-26 19:40


本篇推文共计2000个字,阅读时间约3分钟。



01


题目描述


题目描述:


将两个升序链表合并为一个新的升序链表并返回。

新链表是通过拼接两个链表的所有节点组成的。


如下面的示例:


输入:l1 = [1,2,4], l2 = [1,3,4]
输出:[1,1,2,3,4,4]

输入:l1 = [], l2 = []
输出:[]

输入:l1 = [], l2 = [0]
输出:[0]


提示:

1. 两个链表的节点数目范围是[0, 50]

2. -100 <= Node.val <= 100

3. l1和l2均按非递减顺序排列




02


方法和思路


我们注意题目中的条件,

这里的话,我想到方法是定义一个空的列表,

分别将两个链表中的值加入到列表中。


两个链表中的值全部加入到列表中之后,

对列表进行排序。


因为此时为列表,我们再定义一个新链表,

将列表的值依次加入到链表中。




我们用代码表示此题的解法如下:


class Solution:
    def mergeTwoLists(self, l1: ListNode, l2: ListNode) -> ListNode:
        l=[]
        while l1:
            l.append(l1.val)
            l1=l1.next
        while l2:
            l.append(l2.val)
            l2=l2.next
        l.sort()

        newlist=ListNode(0)
        res=newlist
        for i in l:
            node=ListNode(i)
            res.next = node
            res = res.next
        return newlist.next




往期回顾

【年终总结】你好2021,再见2020。


【快速写好毕业论文】你不得不知晓的七个常用文献搜索平台


【秋招纪实录】一篇特别正经的【腾讯】求职经验分享


【一天一道Leetcode】回文字符串-最少分割次数


【一天一道Leetcode】最长公共前缀


【一天一道Leetcode】套信封问题



☆ END ☆

你与世界

只差一个

公众号

浏览 36
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报