krahets / hello-algo

《Hello 算法》:动画图解、一键运行的数据结构与算法教程。支持 Python, Java, C++, C, C#, JS, Go, Swift, Rust, Ruby, Kotlin, TS, Dart 代码。简体版和繁体版同步更新,English version ongoing
https://www.hello-algo.com
Other
95.04k stars 12.07k forks source link

关于双向队列5.3.2C++中pop函数的问题 #1458

Closed CGTW closed 1 month ago

CGTW commented 1 month ago

想向您提一个问题 关于 int pop(bool isFront) { if (isEmpty()) throw out_of_range("队列为空"); int val; if (isFront) { val = front->val; DoublyListNode fNext = front->next; if (fNext != nullptr) { fNext->prev = nullptr; front->next = nullptr;//---本行---- } delete front; front = fNext; } else { val = rear->val; DoublyListNode rPrev = rear->prev; if (rPrev != nullptr) { rPrev->next = nullptr; rear->prev = nullptr;//---本行---- } delete rear; rear = rPrev; } queSize--; return val; } 我所标注的这几行代码是否能够删除,因为在后文中将整个节点都删除了 , 在我删除我所标注代码后依然能够运行,我不知道如果删除这个代码是否会引起一些我所不知的问题,特来向您请教,望能收到回信