LeetCode 206 · Reverse Linked List · Easy
Çözümün her adımını burada izleyebilirsin. Bir liste seç, İleri'ye bas ya da Oynat'a tıkla; okların tek tek nasıl çevrildiğini ve prev, current, next değişkenlerinin nasıl ilerlediğini gör.
Her node bir sayı (val) ve bir sonraki node'u gösteren bir ok (next) tutar. Elinde sadece ilk node (head) vardır. Son node'un oku null'ı gösterir.
Listeyi baştan sona gez ve her node'un okunu bir öncekine çevir. İlk node'un oku null'a döner, çünkü ters çevrilince o son node olur.
current.next'i değiştirdiğin anda listenin geri kalanına giden yol kopar. Bu yüzden önce next = current.next ile bir sonraki node'u saklarsın.
Virgülle ayrılmış en fazla 7 tam sayı yaz (örneğin 1, 2, 3). Sayılar -5000 ile 5000 arasında olmalı. Boş bırakırsan liste boş olur.
Liste (node'lar yerinde duruyor, sadece oklar değişiyor)
Değişkenler
Kod (Solution.cs içindeki metot)
Her node'a bir kez uğruyoruz: O(n) zaman. Liste 5 node da olsa 5000 node da olsa sadece üç değişken kullanıyoruz (prev, current, next) ve hiç yeni node oluşturmuyoruz: O(1) bellek.