美文网首页算法提高之LeetCode刷题
leetcode.21 - 合并两个有序链表

leetcode.21 - 合并两个有序链表

作者: 半亩房顶 | 来源:发表于2019-03-29 13:48 被阅读1次

    题目

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

    //示例:
    输入:1->2->4, 1->3->4
    输出:1->1->2->3->4->4
    

    思路

    emmm,就是最简单的想法就够了,类似归并排序的合并步骤

    注意点

    • 判断条件使用 < 不使用 >=,我说我记得性能有差距但是找不到根据了,你愿意信么?
    • 注意边界判断

    代码

    def mergeTwoLists(self, l1: ListNode, l2: ListNode) -> ListNode:
            l = lt = ListNode(0)
            
            while l1 and l2:
                if l1.val <= l2.val:
                    lt.next = l1
                    l1 = l1.next
                else:
                    lt.next = l2
                    l2 = l2.next
                lt = lt.next
            
            if l1:
                lt.next = l1
            elif l2:
                lt.next = l2
            return l.next
    

    以上

    欢迎大家关注我的公众号


    半亩房顶

    相关文章

      网友评论

        本文标题:leetcode.21 - 合并两个有序链表

        本文链接:https://www.haomeiwen.com/subject/zzdlbqtx.html