LEETCODE | PYTHON | 21 | 合并两个有序链表
1. 题目
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/linked-list-cycle-ii
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处
2. 代码
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution:
def mergeTwoLists(self, list1: Optional[ListNode], list2: Optional[ListNode]) -> Optional[ListNode]:
#初始化
res = ListNode(None)
Node = res
#print(curA.val,curB.val)
#特殊情况判断
if list1 == None and list2 == None:
return None
elif list1 == None:
return list2
elif list2 == None:
return list1
#循环走完两个链表
while list1 and list2:
#若当前状态下A的值小于等于B
if list1.val < list2.val:
Node.next = list1
list1 = list1.next
#若当下状态下A的值大于B
else:
Node.next = list2
list2 = list2.next
Node = Node.next
#判断是否有未遍历完的链表
if list1:
Node.next = list1
elif list2:
Node.next = list2
return res.next