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

Ders 4/4

Bağlı listeyi ters çevirmek, her düğümün next bağını bir önceki düğüme döndürmektir. Zor olan tek şey sıradır: bir bağı çevirdiğin an, zincirin geri kalanına giden yolu kaybedersin. Bu yüzden çevirmeden önce bir sonraki düğümü kenara alırsın.

previous = None
node = head
while node is not None:
following = node.next
node.next = previous
previous = node
node = following
return previous
Dört satır, hep bu sırada: sonrakini sakla, bağı çevir, previous'ı ilerlet, node'u ilerlet. Döngü bittiğinde node boştur; ters çevrilmiş listenin başı previous'tadır.

Bu, daha büyük çözümlerin yapı taşıdır. Zincirin palindrom olup olmadığını listeye kopyalamadan anlamak için: hızlı ve yavaş işaretçiyle ortayı bul, ikinci yarıyı ters çevir, sonra iki yarıyı baştan birlikte yürüyerek karşılaştır.

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

    Listeyi Ters Çevir

    Kod Okuma · Hatayı Bul

  2. 02

    Zincir Palindromu

    Fonksiyon

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