gpt4 book ai didi

java - 对于 addHead 方法为什么要检查 tail == null ?

转载 作者:行者123 更新时间:2023-12-02 01:24:38 24 4
gpt4 key购买 nike

我正在学习 Java 数据结构类(class),目前正在学习单链表。在addHead方法中,为什么我们需要检查tail == null?当 true 时,为什么 tail = head?

public void addHead(T d){
Node<T> n = new Node<>(d, head);
head = n;
size++
if(tail == null)
tail = head;
}

完整代码:https://venus.cs.qc.cuny.edu/~ryba/cs313/linkedList/LinkedList.java

最佳答案

In head 是对列表中第一个节点的引用。
tail 中是对列表中最后一个节点的引用。
(tail引用用于允许在恒定时间内将元素添加到列表的末尾。)

空列表具有 head == nulltail == null
只有一个元素的列表具有 head == tailhead != nulltail != null
包含多个元素的列表有 head != tailhead != nulltail != null

addHead 为新元素 d 创建一个新节点 n,并引用存储在列表中的下一个节点head(第一个元素为 null)。 head 被分配了对新创建的节点 n 的引用。

将第一个元素添加到列表时,if(tail == null) 为 true。对 n 的引用已保存在 head 中,还需要使用 tail = head; 保存在 tail 中(也可能:tail = n;)以满足head == tail条件。

向列表的 head 添加其他元素 (addHead) 时,tail 不会更改,但应继续指向到列表的最后一个节点。

关于java - 对于 addHead 方法为什么要检查 tail == null ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57121143/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com