剑指offer【25】: 合并两个排序的链表

题目:

 

思路+代码:

class Solution:
    # 思路:
        1.当l1和l2同时存在时,初始化合成新链表的空指针,通过逐个判断l1和l2的大小,同时移动指针指向较小的节点
        2.当有一个链表为空时,将另一个链表连接在指针下面

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

 

备注:有个小疑问,l1和l2不是两个独立的链表吗,为什么能够这样用一个指针两边指,就说是合成了新链表;我的理解应该是要新建节点,连接节点?

展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 数字20 设计师: CSDN官方博客
应支付0元
点击重新获取
扫码支付

支付成功即可阅读