【发布时间】:2018-05-09 12:56:18
【问题描述】:
这是我目前所拥有的,但它不起作用。基本上跳到else if(cnode == preposition)。
void LinkedList::Delete(Node *PrePosition) {
Node *cnode = head;
Node *pnode = NULL;
while (cnode != NULL) {
if (cnode->value != NULL) {
if (pnode == NULL) {
// if there is not previous node
head = cnode->next;
}
else if (cnode == PrePosition) {
// if there is previous node
cout << endl << "Deleting: " << cnode << endl;
pnode->next = cnode->next;
}
}
else {
// don't delete
pnode = cnode;
}
cnode = cnode->next;
}
}
【问题讨论】:
-
如果
PrePosition真的是要删除的节点之前的节点,那么这看起来更像是对常识的测试。但这可能永远是提问者的秘密。