这是在第一个之后为双向链表插入节点的正确方法吗?

时间:2017-01-30 21:21:50

标签: c++ algorithm list

NodePtr p = new Node(id, age, email)
p->prev = top;
p->next = top->next;
top->next = p;
top->next->prev = p;

我试图在第一个节点之后插入节点p。

我正在尝试自学如何使用双向链表。当我把它画出来时,看起来它会起作用。我只是想确认这是否正确。如果这不正确,我该如何解决?

1 个答案:

答案 0 :(得分:1)

您的实施无效。

top->next = p; // top->next is now p
top->next->prev = p; // p->prev is now p, oops

交换这两行,这是正确的。

top->next->prev = p; // top->next->prev is now p
top->next = p; // top->next is now p