【发布时间】:2016-08-30 10:09:11
【问题描述】:
编写代码片段,适当删除双向链表中
p(数据值14)所指向的节点。
我想我知道如何做到这一点:
(1)使右边的节点previous元素指向左边的节点
(2)使左边的next元素的节点指向右边的节点
(3) 将p指向的节点元素设为NULL并删除。
但是我忘记了如何在代码中编写它(已经有一段时间了)。我在想它会是这样的(我假设 node 是一个包含 int 数据、node* next 和 node* previous 的结构):
node* x = p->next;
node* y = p->previous;
x->previous = y;
y->next = x;
p->previous = nullptr;
p->next = nullptr;
delete p;
x->previous = y;
编写代码片段,插入14到16之间的节点(同图):
node *x = p->next;
node y;
y->previous = x->previous;
y->next = p->next;
x->previous = y;
p->next = y;
这样可以吗?
【问题讨论】:
标签: c++ linked-list doubly-linked-list