所以我正在解决一个问题我们不能使用虚拟节点
代码以
开头void LinkedList::deletemiddleNode()
{
Node *pointer = head;
...
}
我感到困惑的原因是因为我在概念上感到困惑。由于我们没有虚拟节点,因此头节点的prev设置为NULL
,尾节点的next设置为NULL
。那么在绘图中你如何描述那个指针指向什么。比如它是指向头部的指针吗?然后指针->prev->下一步将无法使用,因为头部的prev是NULL
,但示例解决方案使用它…?
画你说?不如这样写:
假设您有一个变量head
,它指向内存中的某个node
对象。它看起来像这样:
pointer
,并将head
中的值赋值给它。现在pointer
包含与head
相同的值,因此指向内存中的相同节点:
<>之前+------+|头|——。+------+ | +------------------+>-> |一些节点对象|+---------+ | +------------------+|指针|——’+---------+之前还是我误解了你的问题? 上面的语句意味着您正在设置或初始化您的头指针以指向某个节点对象,并且头与节点具有相同的用户定义数据类型!!