給定單鏈表中間某節點指針 c(非頭非尾),在不知道頭指針情況下刪除該節點。
將下一節點 d 的數據複製到 c,然後刪除 d:
bool remove(Node *c) {
if (!c || !c->next) return false; // 空或尾節點無法處理
Node *d = c->next;
c->data = d->data;
c->next = d->next;
delete d;
return true;
}
c 是尾節點(c->next == null),無法用此法。面試中應說明此限制,並給出替代方案(如標記刪除、拋出異常)。