一个问题,要求您删除链接列表中的中间节点,只提供该节点。
解决问题的方法是将middle.next.element
复制到middle.element
,然后通过执行middle.next
middle.next=middle.next.next
有一个特殊情况,即middle.next是最后一个节点。 答案说你可以将中间节点标记为虚拟。
我不熟悉这个想法" dummy"。如何将节点标记为虚拟节点以及如何在其他情况下使用虚节点?
一般虚拟数据怎么样?
答案 0 :(得分:4)
这个问题没有一般答案。链表的实现必须已经定义了虚拟节点的概念并且一致地使用它。实现此目的的典型方法是声明一个特殊的 dummy 实例:
public class Node {
public static final Object DUMMY = new Object();
...
并指定middle.element = DUMMY;
您可以想象,除非API实现的所有其他内容都遵守此约定,否则这将无效。
如果您的列表被指定为无法包含null
元素,那么您也可以指定middle.element = null
,但故事的其余部分保持不变。