我是靠谱客的博主 耍酷店员,最近开发中收集的这篇文章主要介绍leetcode21——合并两个有序列表(简单,0)题目解答结果感想,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

见了链表就发愁的zyw…

文章目录

  • 题目
  • 解答
    • code
    • 思路
      • 备注:
      • 代码流程:(按行数)
  • 结果
  • 感想

题目

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

示例:

输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/merge-two-sorted-lists
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解答

code

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution:
    def mergeTwoLists(self, l1: ListNode, l2: ListNode) -> ListNode:
        if l1 and l2:
            if l1.val > l2.val: l1, l2 = l2, l1
            l1.next = self.mergeTwoLists(l1.next, l2)
        return l1 or l2

思路

备注:

在 Python 中,and 和 or 都有提前截至运算的功能。
and:如果 and 前面的表达式已经为 False,那么 and 之后的表达式将被 跳过,返回左表达式结果
or:如果 or 前面的表达式已经为 True,那么 or 之后的表达式将被跳过,直接返回左表达式的结果
例子:[] and 7 等于 []

代码流程:(按行数)

判断 l1 或 l2 中是否有一个节点为空,如果存在,那么我们只需要把不为空的节点接到链表后面即可
对 l1 和 l2 重新赋值,使得 l1 指向比较小的那个节点对象
修改 l1 的 next 属性为递归函数返回值
返回 l1,注意:如果 l1 和 l2 同时为 None,此时递归停止返回 None

作者:QQqun902025048
链接:https://leetcode-cn.com/problems/merge-two-sorted-lists/solution/python-4xing-by-knifezhu-3/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

思路即比较两个列表当前节点(以后也不再修改和操作该节点以前得部分),随后确定下个节点(通过不停交换后半个列表)。

结果

在这里插入图片描述

感想

递归好绕哦,,,当初就没学好,得多下功夫
列表也很绕,操作不熟练

最后

以上就是耍酷店员为你收集整理的leetcode21——合并两个有序列表(简单,0)题目解答结果感想的全部内容,希望文章能够帮你解决leetcode21——合并两个有序列表(简单,0)题目解答结果感想所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(64)

评论列表共有 0 条评论

立即
投稿
返回
顶部