美文网首页
2019-05-20LeetCode21. 合并两个有序链表

2019-05-20LeetCode21. 合并两个有序链表

作者: mztkenan | 来源:发表于2019-05-20 19:26 被阅读0次

归并的思路,就是卡在了循环没跳出来,及时注释,发现循环指针没有指向下一个 10min

# 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:
        head=ListNode(0)
        cur=head
        while(l1!=None and l2!=None):
            if(l1.val<=l2.val):
                cur.next=l1
                cur=cur.next  # 这里可以和下面合并
                l1=l1.next
            else:
                cur.next=l2
                cur=cur.next
                l2=l2.next
        while(l1!=None):  # cur.next = l1 or l2 可以用这个替换,python的魔法方法
            cur.next=l1
            cur=cur.next
            l1=l1.next
        while(l2!=None):
            cur.next=l2
            cur=cur.next
            l2=l2.next
        return head.next     

自己写的递归版本

class Solution:
    def mergeTwoLists(self, l1: ListNode, l2: ListNode) -> ListNode:
        # if not l1 or not l2: #  Or的巧妙
        #     return l1 or l2
        if l1==None and l2==None:
            return None
        if l1==None: return l2
        if l2==None: return l1
        if l1.val<=l2.val:
            l1.next=self.mergeTwoLists(l1.next,l2)
            return l1
        else:
            l2.next=self.mergeTwoLists(l1,l2.next)
            return l2

相关文章

  • leecode刷题(23)-- 合并两个有序链表

    leecode刷题(23)-- 合并两个有序链表 合并两个有序链表 将两个有序链表合并为一个新的有序链表并返回。新...

  • 合并单链表

    合并两个有序链表非递归实现 合并两个有序链表递归实现

  • leetcode 链表 [C语言]

    21. 合并两个有序链表 合并两个有序链表 61. 旋转链表 (快慢指针) 61. 旋转链表 相关标签 : 链表 ...

  • ARTS-Week6 有序链表合并、DevOps、Json解析、

    Algorithm LeetCode原题链接: 合并两个有序链表 将两个有序链表合并为一个新的有序链表并返回。新链...

  • 2018-12-26

    问题列表 合并两个有序链表 合并K个排序链表 合并区间 插入区间 问题与反馈 总结与收获 多个有序链表的合并,类似...

  • leetcode的题目21

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

  • Swift 合并两个有序链表 - LeetCode

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

  • LeetCode 21. 合并两个有序链表

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

  • 刷leetCode算法题+解析(四)

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

  • Swift - LeetCode - 合并两个有序链表

    题目 合并两个有序链表 问题: 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节...

网友评论

      本文标题:2019-05-20LeetCode21. 合并两个有序链表

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