Can anyone please explain why it's showing "Time Limit Exceeded" for Merge Two Sorted Lists solution
# 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, l1: Optional[ListNode], l2: Optional[ListNode]) -> Optional[ListNode]:
        if l1 is None:
            return l2
        if l2 is None:
            return l1
        
        head1 = l1
        head2 = l2
        head3 = None
        while head1 and head2:
            if head1.val == head2.val:
                new_node1 = ListNode(head1.val)
                new_node1.next = None
                new_node2 = ListNode(head2.val)
                new_node2.next = None
                
                if head3 is None:
                    head3 = new_node1
                    head3.next = new_node2
                else:
                    while head3:
                        last_node = head3.next

                    last_node.next = new_node1
                    last_node.next.next = new_node2

            else:
                if head1.val > head2.val:
                    new_node = ListNode(head2.val)
                    new_node.next = None
                    head2 = head2.next
                else:
                    new_node = ListNode(head1.val)
                    new_node.next = None
                    head1 = head1.next
                if head3 is None:
                    head3 = new_node
                else:
                    while head3:
                        last_node = head3.next
                    last_node.next = new_node
                continue
                
            head1 = head1.next
            head2 = head2.next
            
        return head3
Comments (2)