[英]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.