亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

c語言鏈表刪除節點的方法是什么

小億
154
2023-12-27 14:44:30
欄目: 編程語言

在C語言中,鏈表刪除節點的方法有以下幾種:

  1. 遍歷查找刪除:先遍歷鏈表,找到需要刪除的節點,然后將它的前一個節點的指針指向它的后一個節點,然后釋放刪除節點的內存空間。
void deleteNode(struct Node** head_ref, int key) {
    struct Node* temp = *head_ref;
    struct Node* prev = NULL;
  
    if (temp != NULL && temp->data == key) {
        *head_ref = temp->next;
        free(temp);
        return;
    }
  
    while (temp != NULL && temp->data != key) {
        prev = temp;
        temp = temp->next;
    }
  
    if (temp == NULL) {
        return;
    }
  
    prev->next = temp->next;
    free(temp);
}
  1. 雙指針刪除:使用兩個指針,一個指向當前節點,另一個指向當前節點的前一個節點。遍歷鏈表,找到需要刪除的節點后,將前一個節點的指針指向當前節點的下一個節點,然后釋放刪除節點的內存空間。
void deleteNode(struct Node** head_ref, int key) {
    struct Node* temp = *head_ref;
    struct Node* prev = NULL;
  
    while (temp != NULL && temp->data != key) {
        prev = temp;
        temp = temp->next;
    }
  
    if (temp == NULL) {
        return;
    }
  
    if (prev == NULL) {
        *head_ref = temp->next;
    } else {
        prev->next = temp->next;
    }
  
    free(temp);
}

需要注意的是,鏈表刪除節點時要注意處理頭節點和尾節點的情況,以及釋放刪除節點的內存空間,避免內存泄漏。

0
凤阳县| 玛纳斯县| 凌海市| 重庆市| 霸州市| 葫芦岛市| 多伦县| 玛纳斯县| 襄樊市| 桦甸市| 武宣县| 遵化市| 彭山县| 固阳县| 兴仁县| 富锦市| 新宁县| 毕节市| 安国市| 辽阳县| 武夷山市| 昌宁县| 新竹市| 新巴尔虎右旗| 宜宾县| 金川县| 天峨县| 海南省| 汨罗市| 隆回县| 萝北县| 吴桥县| 专栏| 陆良县| 许昌县| 芜湖市| 江源县| 鲁甸县| 铜陵市| SHOW| 延寿县|