我正在尝试编写一个双循环链表。根据我的理解,代码实际上应该创建一个循环链表。
pPrev
指针指向该临时节点。这应该建立temp和列表其余部分之间的链接。然后我让temp pPrev
去尾巴,然后尾巴的pNext
进入temp,我认为应该处理圆形。然后关闭我改变温度成为新的头。 当我从头部指针打印时,唯一打印的是第一个节点一遍又一遍。我没有看到我在这个实现中出错了。如果有人能给我并提示我哪里出错了,我将不胜感激。提前谢谢。
void addNodeToStart(Node*& pHead, Node*& pTail, int input) {
Node* pTemp = new Node;
pTemp->data = input;
if (pHead == NULL) {
pTemp->data = input;
pTemp->pNext = pTemp;
pTemp->pPrev = pTemp;
pHead = pTemp;
pTail = pTemp;
} else {
pTemp->pNext = pHead;
pHead->pPrev = pTemp;
pTemp->pPrev = pTail;
pTail->pNext = pTemp;
}
pHead = pTemp;
}