c++ listnode删除节点的技巧

   2024-10-05 5170
核心提示:在C++中,删除单链表中的节点通常需要维护前一个节点以及当前节点。以下是一个删除单链表中特定节点的示例代码:#include iostre

在C++中,删除单链表中的节点通常需要维护前一个节点以及当前节点。以下是一个删除单链表中特定节点的示例代码:

#include <iostream>struct ListNode {    int val;    ListNode* next;    ListNode(int x) : val(x), next(nullptr) {}};void deleteNode(ListNode* node) {    if (node != nullptr && node->next != nullptr) {        ListNode* temp = node->next;        node->val = temp->val;        node->next = temp->next;        delete temp;    }}int main() {    ListNode* head = new ListNode(1);    head->next = new ListNode(2);    head->next->next = new ListNode(3);    // 删除第二个节点    deleteNode(head->next);    // 打印剩余节点    ListNode* curr = head;    while (curr != nullptr) {        std::cout << curr->val << " ";        curr = curr->next;    }    return 0;}

在上面的示例中,删除节点的函数deleteNode首先检查节点和其后一个节点是否存在,如果存在,就将后一个节点的值复制给当前节点,并删除后一个节点。这种方法可以在常量时间内删除指定节点,而不需要遍历整个链表。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式 | 网站留言    |  赣ICP备2021007278号