Leetcode 021 Merge Two Sorted Lists

Bize sıralı olarak verilmiş iki linked list var ve bunları sıralı olarak yeni bir listede birleştirmemiz gerekiyor. -İlk olarak birleşmiş listenin headi olması için bir node head node oluştururuz.

-İki işaretçiye ihtiyacımız var .L1 ve L2 .Bunlar 1. liste ve 2. liste için kaldığımız yeri tutacaklar.

-L1 ve L2 karşılaştırırız.Küçük olan değeri birleşmiş listeye ekleriz ve eklediğimiz işaretçiyi kendi listesinde 1 adım ilerletiriz.

-İki listede de aynı anda dolaşırız.Biri sona geldiğinde dolaşmayı bırakırız.

-Sonrasında daha büyük listenin kalan elemanlarını birleşmiş listeye ekleriz.

-Head.next i döneriz.(Head ilk oluşturduğumuz 0 değeri idi.)


# Definition for singly-linked list.
 class ListNode:
     def __init__(self, val=0, next=None):
         self.val = val
         self.next = next
        

    def mergeTwoLists(self, l1: ListNode, l2: ListNode) -> ListNode:
        head = new_list = ListNode(0)
        
        while(l1 and l2):
            if (l1.val < l2.val):
                new_list.next = l1
                l1 = l1.next  
            else:
                new_list.next = l2
                l2 = l2.next
            new_list = new_list.next

        new_list.next = l1 or l2
        return head.next