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