我正在为我的 Uni 实现链表,我在我们的演示文稿中看到了这段代码。
template <class X> bool linkedList<X>::deleteElement(node<X> *p)
if (p=NULL)
return false;
if(p->next!=NULL)
p->next->prev = p->prev;
if(p->prev!=NULL)
p->prev->next = p->next;
else
head = p->next
我想知道 p->next->prev = p->prev;
部分是否与说 p = p->prev;
相同,因为p 的前一个,是 p 本身。
提前感谢您的回答。
编辑 1:修正了一个拼写错误并添加了更多代码以使其更加清晰。
最佳答案
不完全是。 p
是局部变量。 p->next->prev
是p->next
上的一个实例变量。改变前者根本不会影响结构,而改变后者会。换句话说,它们的值可能相同,但是存储这些值的内存地址不同。
关于c++ - p->next->prev 和 p 一样吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37596049/