Optimale Möglichkeiten, um Traverse durch eine LinkedList - Java

Die Situation

Habe ich ein interview mit TripAdvisor morgen und ich entschied mich für die Praxis zu schaffen, meine eigenen LinkedList. Ich versuche herauszufinden, der beste Weg, um traverse durch.

Primäre Frage: ich habe es geschafft, traverse durch meine Verlinkte Liste, aber ich glaube, dass
es gibt einen besseren Weg, es zu tun. Wie würden Sie die traverse durch ?

Bonus-Frage: Wie kann meine gesamte Klassen Aussehen ? Ist es etwas, was ich sollte/sollte nicht hinzufügen ?
Es scheint gut zu funktionieren, aber ist es optimal ?

Bonus-Frage #2: zu guter Letzt wurde ich gefragt, ob anyonehad jeder Einblick auf typische interview-Fragen/Konzepte, die ich wissen muss ?

Sehr geschätzt.

Hier sind meine Klassen

//*********************************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());

}

//Wieder gibt es einen besseren Weg, dies zu tun ?
//Danke
}

Welche position werden Sie interviewt?
Versuchen Sie codereview.stackexchange.com
Warum können Sie nicht einfach verwenden pointer = pointer.getLink();, und while (pointer != null) { (und entfernen Ihre Letzte Print-Anweisung)
Interview-Fragen, die verknüpfte Listen in der Regel konzentrieren sich auf die "Entfernen" - operation, denn es hat einige interessante Rand-Fällen. Auch ein gemeinsames interview-Frage zu Folgen, so etwas wie dieses sein: "Wie würden Sie erkennen, a circular linked list oder enthält einen Zyklus?"
Vielen Dank für den Einblick! Kann nicht glauben, ich glaube nicht, dass die Lösung selbst

InformationsquelleAutor RonJermiah | 2013-10-29

Schreibe einen Kommentar