簡體   English   中英

如何遍歷Java中的雙向鏈接列表的后向工作?

[英]How does traverse backward work for a Doubly Linked List in Java?

我對在雙向鏈表中向后遍歷的理解是從某個位置遍歷到列表中的第一個節點。 我在java中編寫了一個Doubly Linked List類,並在其中編寫了一個traverseBack方法。

traverseBack方法的代碼如下。

public void traverseBack(int d){
    for(Node n=first; n!=null; n=n.next){
        if(n.data == d){
            System.out.println("\nTraversing in Backward Direction\n");
            while(n!=null){
                System.out.println(n.data);
                n = n.prev;
            }
            return;
        }
        if(n.next==null){
            System.out.println("Given node doesn't exist");
            return;
        }
    }
}

代碼編譯並運行沒有錯誤。

我可以問一下,我對雙向鏈表中倒退的理解是否正確? 代碼中有什么東西我做得不好嗎?

這里的錯誤是你似乎沒有倒退,你前進了。 您通過調用n=n.nextfor循環中迭代Node 你不應該打電話給n=n.prev嗎?

你為什么不從last元素開始並從那里向后循環? 你可以這樣:

for(Node n=last; n!=null; n=n.prev){  //this is traversing backwards now. 

完成后,根本不需要while循環。

暫無
暫無

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

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