簡體   English   中英

如何顯示LinkedList的所有內容?

[英]How can I display all the contents of the LinkedList?

請考慮以下代碼的鏈表。 基本上,我在LinkedList類中創建了三個節點,並試圖顯示內容,但是我在DisplayLinkedList()方法中做錯了什么。 現在,我得到的輸出如下:

B
C
null

我想顯示如下:ABC

分別。 誰能告訴我DisplayLinkedList()方法的錯誤之處?

package MyPackage;


class Node {

String data;
Node next;

public Node(String data, Node next){

    this.data = data;
    this.next = next;

}

public String getData(){
    return data;
}

public Node getNext(){

    return next;
}

public void setNext(Node n){
    next = n;
}

 public String toString() {
     return this.data;
 }


}

// CREATING LINKED LIST BACKWARDS AND APPLYING SOME OPERATIONS ON IT


class LinkedList{

Node cNode = new Node("C", null);

Node bNode = new Node("B", cNode);

Node list = new Node("A", bNode);


public void DisplayLinkedList(){

    Node prev = null;
    Node curr = list;

    while(curr != null){

        prev = curr;
        curr = curr.getNext();
        System.out.println(curr);

    }


}




public class LinkedListByME {


public static void main(String[] args) {


    LinkedList ll = new LinkedList();
    ll.DisplayLinkedList();



}

}

您正在檢查curr是否為null,然后檢查THEN的增量,從而使curr為您嘗試打印的null值。

while(curr != null){
    prev = curr;
    curr = curr.getNext();
    System.out.println(curr);

}

首先進行打印應該會有所幫助。

while(curr != null){
    System.out.println(curr);
    prev = curr;
    curr = curr.getNext();
}

您的問題出在DisplayLinkedList的循環中。 您“錯過”了第一個節點,因為在打印之前前進到了下一個節點。

它應該是:

while(curr != null) {
   System.out.println(curr);
   prev = curr;
   curr = curr.getNext();    
}

同樣,您似乎在不使用prev情況下prev跟蹤。 該方法的簡化版本可以是:

public void DisplayLinkedList() {
    Node curr = list;
    while(curr != null) {
        System.out.println(curr);
        curr = curr.getNext();
    }
}
 public void listTrasverse() { if(isEmpty()) { System.out.print("\\nLIST IS EMPTY !!!"); } else { while(current!=null) { current.displayLink(); current=current.next; } } } 

使用此代碼在節點類中調用displayLink()方法,該displayLink()方法將是

public void displayLink(){
    System.out.print("\nDATA= "+data);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM