簡體   English   中英

雙鏈列表中的removeFirst節點

[英]removeFirst node in a doubly-linked list

我找到了有關雙向鏈接列表的代碼。

/**
 * this method removes element from the start of the linked list
 * @return
 */
public E removeFirst() {
    if (size == 0) throw new NoSuchElementException();
    Node tmp = head;
    head = head.next;
    head.prev = null;
    size--;
    System.out.println("deleted: "+tmp.element);
    return tmp.element;
}

上面的代碼是從這里: http : //java2novice.com/data-structures-in-java/linked-list/doubly-linked-list/

我確實以另一種方式重寫了該代碼:

public E removeFirst() {
    if (head == null) {
        return null;
    }
    Node tmp = head.next;
    Node tmpExtra = head; 
    head=tmp;
    head.prev=null;
    return tmpExtra.element
}

我的代碼正確嗎? 我在想對嗎? 謝謝

這取決於您如何定義正確的代碼

您的代碼顯然與給定示例的行為不同 例如,在列表為空的情況下,您不會引發Exception ,並且不會減小列表的大小。

暫無
暫無

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

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