「LeetCode系列」合并两个有序链表问题|刷题打卡

68 阅读1分钟

作者:看那个码农

公众号:看那个码农

本题来源于「LeetCode系列」21. 合并两个有序链表

题目描述:

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

示例 :

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

输入:l1 = [], l2 = []
输出:[]
示例 3:

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

提示:

  1. 两个链表的节点数目范围是 [0, 50]
  2. -100 <= Node.val <= 100
  3. l1 和 l2 均按 非递减顺序 排列

代码分析

这里的话,我想到方法是

  1. 定义一个空的列表,分别将两个链表中的值加入到列表中

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

  3. 对列表进行排序

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

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

所以我们的代码为

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

如果你觉得这篇内容对你有帮助的话:

1、点赞支持下吧,让更多的人也能看到这篇内容

2、关注公众号:看那个码农,我们一起学习一起进步。

本文正在参与「掘金 2021 春招闯关活动」, 点击查看 活动详情