Java 双链表空情况
在我的讲座中,如果双链表是空的,那么Java 双链表空情况,java,data-structures,doubly-linked-list,Java,Data Structures,Doubly Linked List,在我的讲座中,如果双链表是空的,那么 header.next==tail; 或 但我觉得只有两个节点的情况就是这样。这个空箱子不是应该是吗 head==null 我不知道我是否正确。我对这个问题还不熟悉。有人能澄清一下吗?这个双链接列表同时使用了头和尾。这些节点实际上并不包含列表的元素,但通过使head和tail案例更像列表的中间部分,有助于使某些算法稍微好一点 如果列表没有使用sentinel,那么空的大小写将是head==null,两个元素的大小写将有头。next==tail和尾。prev
header.next==tail;
或
但我觉得只有两个节点的情况就是这样。这个空箱子不是应该是吗
head==null
我不知道我是否正确。我对这个问题还不熟悉。有人能澄清一下吗?这个双链接列表同时使用了头和尾。这些节点实际上并不包含列表的元素,但通过使head和tail案例更像列表的中间部分,有助于使某些算法稍微好一点
如果列表没有使用sentinel,那么空的大小写将是
head==null
,两个元素的大小写将有头。next==tail
和尾。prev==header
这个双链接列表同时使用头和尾。这些节点实际上并不包含列表的元素,但通过使head和tail案例更像列表的中间部分,有助于使某些算法稍微好一点
如果列表没有使用Sentinel,那么空的大小写将是
head==null
,两个元素的大小写将有标题。next==tail
和tail.prev==header
存储双链接列表有两种常用方法:
- 让
和head
引用树中的实际节点tail
在这种情况下,您是正确的-head variable tail variable | | V V first -> second -> third -> null
将为head
null
- 让
和head
成为特殊节点(调用,如另一个答案中所指出的),它们实际上不包含任何数据,并分别通过tail
和next
指向列表中的第一个和最后一个节点prev
在这种情况下,head variable tail variable | | V V head -> first -> second -> third -> tail -> null node node
表示列表为空 可以使用这种方法而不是上面的方法来简化实现,并使代码更快一点-不需要为删除或插入第一个或最后一个节点做特殊的准备header.next==tail
- 让
和head
引用树中的实际节点tail
在这种情况下,您是正确的-head variable tail variable | | V V first -> second -> third -> null
将为head
null
- 让
和head
成为特殊节点(调用,如另一个答案中所指出的),它们实际上不包含任何数据,并分别通过tail
和next
指向列表中的第一个和最后一个节点prev
在这种情况下,head variable tail variable | | V V head -> first -> second -> third -> tail -> null node node
表示列表为空 可以使用这种方法而不是上面的方法来简化实现,并使代码更快一点-不需要为删除或插入第一个或最后一个节点做特殊的准备header.next==tail
head==null
是的,我同意你的说法,即head==null
表示一个空列表,但也有可能是措辞错误。谢谢。我们没有学习哨兵。在注释中,给出了“双链接列表”有一个引用,头指向序列中的第一个节点,引用,尾指向序列的最后一端“。在这种情况下,我认为尽管给出了哨兵方法的代码,因为head和tail指的是树中的实际节点,正确的应该是head==null
是的,我同意你的说法,即head==null
表示一个空列表,但也可能是该短语错误。