İçeriğe atla
CodeItRaw
Bağlı Listeler

Ders 2/4

Uzunluğu bilmeden zincirin ortasını nasıl bulursun? İki işaretçi kullan: yavaş olan her turda bir adım, hızlı olan iki adım atsın. Hızlı sona vardığında yavaş tam yarı yolu gelmiştir. Tek geçiş, sayaç yok.

slow = fast = head
while fast is not None and fast.next is not None:
slow = slow.next
fast = fast.next.next
return slow
Koşulun iki parçası da gerekli: fast.next.next yazabilmek için hem fast hem fast.next var olmalıdır. Düğüm sayısı çiftse bu döngü iki ortancadan ikincisinde durur.

Küçük bir zinciri kâğıtta izle: 1 → 2 → 3 → 4 → 5'te yavaş 3'te durur; 1 → 2 → 3 → 4'te yine 3'te durur. İlk ortancayı istiyorsan koşulu bir adım erken kesersin (fast.next ve fast.next.next var mı diye sorarak).

Görevler

Görevler sırayla açılır. Hepsini çözünce sonraki ders açılır.

Bu dersin görevleri, önceki dersler bitince açılır. Anlatımı şimdiden okuyabilirsin.

  1. 01

    Hızlı ve Yavaş

    Kod Okuma · Çıktıyı Tahmin Et

  2. 02

    Tam Orta

    Fonksiyon

Sırayı beklemeden çözmek istersen bütün problemler kilitsiz açık: Problemler listesi