Homer Simpson non è esattamente conosciuto per essere l'Einstein di Springfield. Per nostra sfortuna Homer ha deciso di progettare una struttura dati con un linked-list, che chiameremo carzy-list. Una crazy-list è una single-linked list con la seguente importante differenza: l'ultimo puntatore punta ad un elemento precedente della lista invece di essere NIL.
Progetta e a analizza un algoritmo che prende come input una crazy-list (i.e. un puntatore L.head) e come output restituisce il numero \(n\) di elementi presenti nella lista.
Il tuo algoritmo non può modificare l'input, e deve avere un run time \( O(n) \) e una quantità costante di spazio extra nella memoria (senza contare la memoria per storare la lista).
Hint: usa la tecnica della tartaruga e della lepre per rilevare il ciclo ed inseguito calcola la lunghezza del ciclo dopodiché calcola la lunghezza della lista.
Primo: Cos'è la tecnica della tartaruga e della lepre?
Secondo: non ho idea di come trovare il ciclo.