Les meilleures façons de Parcourir dans une LinkedList - Java

La Situation

J'ai un entretien avec TripAdvisor demain et j'ai décidé pour la pratique de créer mon propre LinkedList. Je suis à essayer de comprendre la meilleure façon de parcourir à travers elle.

Principale Question: j'ai réussi à parcourir par le biais de ma Liste, mais je crois
il y a une meilleure façon de le faire. Comment voulez-vous traverser ?

Question Bonus: Comment faire de mon ensemble des classes de look ? Est-ce que je devrait/ne devrait pas ajouter ?
Il semble fonctionner très bien, mais est-il optimal ?

Question Bonus #2: Enfin, je me demandais si anyonehad toute la perspicacité de questions d'entrevue typiques/concepts que je dois savoir ?

Grandement apprécié.

Voici mes Classes

//*********************************Node Class*******************************************     
 public class Node<T> {
  Node<T> link;

  T data;

  public Node(T data) {

    this.data = data;
    link = null;

}

public T getData() {
    return data;

}

public Node<T> getLink() {

    return link;

}


public Node<T> setLink(Node<T> N) {

    this.link = N;
    return link;

}

public void setData(T newData) {

    this.data = newData;

}

}

    //****************************************Linked List Class*******************************

   public class LinkedList<T> {

Node<T> head;
T data;


public LinkedList(){
   head = null;
   }




public void add(T data){

    Node<T> newNode = new Node<T> (data);
    newNode.setLink(head);
    head = newNode;
}


  //had problems printing out the data in the last node

 public void traverse(){
    Node<T> pointer;
    pointer = head;

while (pointer.getLink()!=null){
        System.out.println(pointer.getData());
        pointer = pointer.setLink(pointer.getLink());
}

//Fixed problems For last node that doesnt get printed out
System.out.println(pointer.getData());

}

//Encore une fois est-il une meilleure façon de le faire ?
//Merci
}

Quel poste que vous convoitez?
Essayez de codereview.stackexchange.com
Pourquoi ne pouvez-vous pas simplement utiliser pointer = pointer.getLink();, et while (pointer != null) { (et supprimer votre dernier rapport d'Impression)
Les questions d'entrevue impliquant des listes liées généralement l'accent sur le "Supprimer" l'opération car il a peu intéressant bord-cas. Aussi une question d'entrevue à suivre quelque chose comme ce serait: "Comment voulez-vous détecter une circulaire de la liste liée, ou de l'un qui contient un cycle?"
Merci pour l'aperçu! Ne peux pas croire que je ne pense pas que la solution moi-même

OriginalL'auteur RonJermiah | 2013-10-29