python合并两个有序链表

目录

  • 基本思路
  • 代码
  • 总结

输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。

示例1:

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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/he-bing-liang-ge-pai-xu-de-lian-biao-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

基本思路

  处理技巧:新建一个假的头结点,然后依次比较两个链表中值,哪个小就另head指向该节点。

代码

# 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 == None and l2 == None:
            return None
        fakeNode = ListNode(0)
        head = fakeNode
        while l1 != None or l2 != None:
            if l1 == None:   
                head.next = l2
                l2=l2.next
                head = head.next
            elif l2 == None:
                head.next = l1
                l1=l1.next
                head = head.next
            else:
                if l1.val <= l2.val:
                    head.next=l1
                    l1=l1.next
                    head=head.next
                else:
                    head.next=l2
                    l2=l2.next
                    head=head.next
        return fakeNode.next

总结

a.注意return的位置,对齐while。而不是else。

你可能感兴趣的:(#,单链表,链表,算法)