首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> C++ 入門

CC150 刪除單鏈表中間節點:只給節點指針

     編輯:C++ 入門

題目

給定單鏈表中間某節點指針 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),無法用此法。面試中應說明此限制,並給出替代方案(如標記刪除、拋出異常)。
  • 本質上是「刪除下一節點並盜用其身份」,利用了節點結構相同、數據才是關鍵的特點。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved