繁体   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