21. Merge Two Sorted Lists - LeetCode
from __future__ import annotations
class ListNode:
def __init__(self, val: int = 0, next: ListNode | None = None):
self.val = val
self.next = next
class Solution:
def mergeTwoLists(self, list1: ListNode | None, list2: ListNode | None) -> ListNode | None:
# if (list1 is None) and (list2 is None):
# return None
# if (list1 is None) or (list2 is None):
# return list1 or list2
p = dummy = ListNode()
p1, p2 = list1, list2
while p1 and p2:
if p1.val < p2.val:
p.next, p1 = p1, p1.next
else:
p.next, p2 = p2, p2.next
p = p.next
p.next = p1 or p2
return dummy.next