-4

所以我正在解决一个问题,我们不能使用虚拟节点

所以代码开始像

void LinkedList::deletemiddleNode()
{
    Node *pointer = head;
    ...
}

我之所以感到困惑,是因为我在概念上感到困惑。由于我们没有虚拟节点,因此头部节点的 prev 设置为NULL,尾部节点的 next 设置为NULL。因此,在绘图中,您将如何描述该指针指向的内容。比如它是一个指向头部的指针吗?那么pointer->prev->next就不能用了,因为head的prev是NULL,但是示例解决方案使用它...?

4

2 回答 2

4

你说的画?像这样的东西怎么样:

假设您有一个变量head指向node内存中某处的对象。它看起来像这样:

+------+ +------------------+
| 头| ---> | 一些节点对象 |
+------+ +------------------+

然后你声明另一个指针,命名pointer并分配给它的来自head. 现在pointer包含相同的值,head并且指向内存中的相同节点:

   +------+      
   | 头| ----。
   +--------+ | +------------------+
               >---> | 一些节点对象 |
+---------+ | +------------------+
| 指针 | ---'
+----------+

还是我误解了你的问题?

于 2013-04-25T07:58:35.783 回答
0

上面的语句意味着您正在设置或初始化您的头指针以指向某个节点对象,并且头与节点具有相同的用户定义数据类型!!!

于 2013-04-25T08:05:44.250 回答