合并两个排序的链表

题目:

输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。
示例1:
输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4
限制:
0 <= 链表长度 <= 1000

题目的理解:

需要理解是递增的单向链表,并且需要考虑链表为空的情况。

python实现

# 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:
        left = l1
        right = l2

        if left is None and right is None:
            return None
        elif left is None:
            return right
        elif right is None:
            return left
        else:
            if left.val > right.val:
                result = ListNode(right.val)
                right = right.next
            else:
                result = ListNode(left.val)
                left = left.next
                
        current = result

        while True:
            if left is None and right is None:
                break
            elif left is None:
                current.next = right
                break
            elif right is None:
                current.next = left
                break
            
            if left.val > right.val:
                current.next = ListNode(right.val)
                right = right.next
            else:
                current.next = ListNode(left.val)
                left = left.next
            
            current = current.next
            
        return result

提交

成功

// END 做了一天的链表,还是有一点点的理解了

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容