Diferenta dintre cele doua while-uri e ca primul verifica daca pointerul este diferit de NULL, iar cel de-al doilea verifica daca pointerul urmator este diferit de NULL. Daca lista ar avea o strucutura mai speciala cred ca ar functiona echivalent. Eroarea la compilare poate fi generata de exemplu daca q ia valoare NULL inainte de while(s-a ajuns la sfarsitul listei), si se verifica q->urm, operatia nefiind permisa pe pointerii nuli. La liste trebuie sa ai grija sa nu ajungi sa folosesti elementele structurii pe pointerii nuli, deoarece nu va merge bine. Foarte folositor ar fi sa inveti sa folosesti debugger-ul( ia vreo 15 min, in mare dai pe butonul de debugg, un buton ca ala de run, doar ca rosu, si dupa dai run line pentru a executa numai o linie de cod) pentru a vedea exact la ce pas nu mai functioneaza bine programul, fiind destul de necesar la astfel de probleme.