首页 > 其他 > 详细

21. 合并两个有序链表

时间:2020-05-09 14:01:48      阅读:41      评论:0      收藏:0      [点我收藏+]

技术分享图片

思路:

需要注意的就是指针的指向处理。
pre指针跟随l1和l2中值较小者向后顺移,每一步指向二者中的较小者,负责确立指向关系;
若l1>=l2,pre指向l2,l2向后顺移一位。否则pre指向l1,l1向后顺移。

class Solution(object):
        def mergeTwoLists(self, l1, l2):
        """
        :type l1: ListNode
        :type l2: ListNode
        :rtype: ListNode
        """
        # 返回值链表的头指针
        prehead = ListNode(-1)
        pre = prehead
        while l1 and l2:
            if l1.val >= l2.val:
                pre.next = l2
                l2 = l2.next
            else:
                pre.next = l1
                l1 = l1.next
            pre = pre.next
        # 把未遍历到的节点接到新链表的后面
        pre.next = l1 if l1 is not None else l2
        return prehead.next

21. 合并两个有序链表

原文:https://www.cnblogs.com/panweiwei/p/12856989.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!