İki Sıralı Listeyi Birleştir
'İki Sıralı Listeyi Birleştir' sorunu için ayrıntılı kılavuz ve Python uygulaması.
1. Öğren
'İki Sıralı Listeyi Birleştir' sorunu Bağlantılı Liste bölümündeki önemli bir zorluktur.
Bu uygulama Python'deki kolay düzey mantığına odaklanır.
Sunduğumuz çözümlerde teknik doğruluğu ve kod okunabilirliğini ön planda tutuyoruz.
2. Real-World Applications
3. Visual Intuition
İki Sıralı Listeyi Birleştirme için mantık akışını görselleştirme.
4. Prerequisites
5. Step-by-Step Thinking
1. Understand the problem
İki Sıralı Listeyi Birleştirme problem açıklamasını dikkatlice okuyun.
2. Formulate brute force
Basit bir yinelemeli çözüm taslağı oluşturun.
3. Identify inefficiency
Gereksiz hesaplamaları arayın.
4. Optimize search path
Süreci hızlandırmak için karma veya sıralama kullanın.
5. Final Implementation
Üretim standartları kodunu temizleyin.
Sorun Bildirimi
Size liste1 ve liste2 olmak üzere iki sıralı bağlantılı listenin başlıkları verilir. İki listeyi tek bir sıralı listede birleştirin. Liste, ilk iki listenin düğümleri birbirine eklenerek oluşturulmalıdır. Birleştirilmiş bağlantılı listenin başlığını döndürün.
Bağlantılı listeler Python listeleri olarak temsil edilir. Birleştirilmiş sıralanmış listeyi döndüren mergeTwoLists(list1: list, list2: list) -> list işlevini uygulayın.
- •The number of nodes in both lists is in the range [0, 50]
- •-100 <= Node.val <= 100
- •Both list1 and list2 are sorted in non-decreasing order
Örnekler
[1,2,4], [1,3,4]
[1,1,2,3,4,4]
Merging 1->2->4 and 1->3->4 gives 1->1->2->3->4->4.
[], []
[]
Both lists are empty, so the merged list is also empty.
[], [0]
[0]
Merging an empty list with [0] gives [0].
Need a Hint?
Edge Cases to Watch
- Boş giriş yapıları
- Tek eleman girişleri
- Büyük sayısal sınırlar
Çözmeye Hazır mısınız?
Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.
Mülakat Bilgileri ve Çeşitleri
Karmaşıklık Analizi Dökümü
Neden Zaman: Directly evaluates all possibilities.
Neden Uzay: Uses standard local memory.
Neden Zaman: Optimized paths reduce total operations.
Neden Uzay: May trade memory for speed.
Optimize Edilmiş Çözüm Python Kodu
Optimize Edilmiş Çözüm Python Kodu
def merge_two_lists_opt(list1, list2):
if isinstance(list1, list):
l1 = build_linked_list(list1)
l2 = build_linked_list(list2)
res = merge_two_lists_opt_helper(l1, l2)
return linked_list_to_list(res)
return merge_two_lists_opt_helper(list1, list2)
def merge_two_lists_opt_helper(list1: ListNode, list2: ListNode) -> ListNode:
dummy = ListNode(0)
tail = dummy
while list1 and list2:
if list1.val < list2.val:
tail.next = list1
list1 = list1.next
else:
tail.next = list2
list2 = list2.next
tail = tail.next
tail.next = list1 or list2
return dummy.nextKaba Kuvvet Kodu (Spoiler Korumalı)
Kaba Kuvvet Kodu (Spoiler Korumalı)
def merge_two_lists_brute(list1, list2):
if isinstance(list1, list):
l1 = build_linked_list(list1)
l2 = build_linked_list(list2)
res = merge_two_lists_brute_helper(l1, l2)
return linked_list_to_list(res)
return merge_two_lists_brute_helper(list1, list2)
def merge_two_lists_brute_helper(list1: ListNode, list2: ListNode) -> ListNode:
vals = []
curr = list1
while curr:
vals.append(curr.val)
curr = curr.next
curr = list2
while curr:
vals.append(curr.val)
curr = curr.next
vals.sort()
dummy = ListNode(0)
curr = dummy
for v in vals:
curr.next = ListNode(v)
curr = curr.next
return dummy.nextAlgorithm Pattern Checklist
When dealing with Linked List data patterns.
- Are constraints clear?
- Is there a linear or logarithmic optimization possible?
Key Revision Notes
Standart Bağlantılı Liste problem özellikleri geçerlidir.
İlgili Sorular
PyRun is built and maintained by an independent solo developer. If this helped your interview prep, consider buying a coffee!
Önerilen Python Kaynakları
İlgili etkileşimli eğitimler, yardımcı sayfalar ve kod karşılaştırmalarıyla bilginizi genişletin.
Python Listeleri
Python listeleri hakkında her şeyi öğrenin. Python'da dizileri yerel olarak nasıl oluşturacağınızı, dilimleyeceğinizi, değiştireceğinizi ve yineleyeceğinizi keşfedin.
Python'da İki Liste Nasıl Birleştirilir
Python'da iki listeyi birleştirmenin ve birleştirmenin en iyi yollarını öğrenin. Artı operatörünü, genişletme yöntemini, liste açmayı ve zincirleme seçeneklerini karşılaştırın.
Python String Yöntemleri Hile Sayfası
Python dize manipülasyonu için eksiksiz bir başvuru kılavuzu. Dize özelliklerini biçimlendirme, arama, bölme, değiştirme ve denetleme konusunda uzmanlaşın.
Python vs JavaScript: Hangi Programlama Dili En İyisidir?
Python ve JavaScript arasında kapsamlı bir karşılaştırma. Sözdizimi farklılıklarını, performansı, kullanım örneklerini (arka uç ve ön uç) ve kodlama örneklerini keşfedin.