链表中的虚拟节点

use*_*965 3 java

问:什么时候使用它们?(作业问题)

  1. 列表中的第一个和最后一个节点

  2. 有时用作列表中的第一个和最后一个节点

  3. 从未用作列表中的第一个和最后一个节点

维基百科说,

哨兵节点是专门指定的节点,与链表和树一起用作遍历路径终止符。哨兵节点不保存或引用由数据结构管理的任何数据。

我在想B,但我真的不知道。

mok*_*mok 6

看,“Dummy”节点和“Sentinel”节点之间存在显着差异。

虚拟节点“有时用作列表中的第一个和最后一个节点”。

当您启动链表时,常见的方法是创建一个虚拟节点,有趣的是它同时是最后一个节点。

显然,LL 的第一个或最后一个节点并不总是虚拟记录。

请注意,您可以使用没有任何数据的虚拟节点和空指针作为显示 LL 中最后一个节点的哨兵。

您可能想知道是否可以有一个没有任何虚拟节点的 LL?
答:是的。您可以保留 LL 的初始化,直到插入第一个数据条目为止,此时只需使用空指针作为 LL,插入后保留指向头节点的指针,并始终使用空指针作为“下一个” " 尾节点的节点。

我建议您访问页面以获取更多见解。