LinkedList(链表)源码笔记(一) unlink(Node x)方法

个人理解:

链表

size 链表大小
first 第一个节点
last 最后一个节点
  链表是由节点连接而成,节点存放元素,并且包含指向上一个节点和下一个节点的信息(双向链表)。


    /**
     * Unlinks non-null node x.
     */
    E unlink(Node x) {
        // assert x != null;
        final E element = x.item;//本节点储存的元素
        final Node next = x.next;//本节点的下一个节点
        final Node prev = x.prev;//本节点的上一个节点
	//第一步
        if (prev == null) {//本节点的上一个节点为空意味着此节点为第一个节点
            first = next;//故将第一个节点(first)设置为本节点的下一个节点
        } else {
            prev.next = next;//如果不为空则将本节点的上一个节点(prev)的下一个节点(prev.next)的指向变更


为本节点的下一个节点(next)
            x.prev = null;//再将本节点的上一个节点设置为空,即断掉与前一个节点的连接
        }
	//第二步
        if (next == null) {//本节点的下一个节点为空意味着此节点为最后一个节点
            last = prev;//将最后一个节点(last)设置为本节点的上一个节点
        } else {
            next.prev = prev;//如果不为空则将本节点的下一个节点(next)的上一个节点(next.prev)的指向变更


为本节点的上一个节点(next)
            x.next = null;//再将本节点的下一个节点设置为空,即断掉与下一个节点的连接
        }
	//第三步
        x.item = null;//最后将本节点的元素设为空
        size--;//链表的容量减1
        modCount++;//修改次数加1
        return element;//返回本节点所存的元素
    }


你可能感兴趣的:(Java)