美文网首页
单向链表 添加、删除节点

单向链表 添加、删除节点

作者: gaookey | 来源:发表于2021-10-28 16:35 被阅读0次

单向链表的节点定义

// 单向链表的节点定义
struct ListNode {
    int m_nValue;
    ListNode* m_pNext;
};

往链表的末尾添加一个节点

// 往链表的末尾添加一个节点
void AddToTail(ListNode** pHead, int value) {
    ListNode* pNew = new ListNode();
    pNew->m_nValue = value;
    pNew->m_pNext = nullptr;
    
    if (*pHead == nullptr) {
        *pHead = pNew;
    } else {
        ListNode* pNode = *pHead;
        while (pNode->m_pNext != nullptr) {
            pNode = pNode->m_pNext;
        }
        pNode->m_pNext = pNew;
    }
}

在链表中找到第一个含有某值的结点并删除该节点

// 在链表中找到第一个含有某值的结点并删除该节点
void RemoveNode(ListNode** pHead, int value) {
    
    if (pHead == nullptr || *pHead == nullptr) {
        return;
    }
    
    ListNode* pToBeDeleted = nullptr;
    if ((*pHead)->m_nValue == value) {
        pToBeDeleted = *pHead;
        *pHead = (*pHead)->m_pNext;
    } else {
        ListNode* pNode = *pHead;
        while (pNode->m_pNext != nullptr && pNode->m_pNext->m_nValue != value) {
            pNode = pNode->m_pNext;
        }
        
        if (pNode->m_pNext != nullptr && pNode->m_pNext->m_nValue == value) {
            pToBeDeleted = pNode->m_pNext;
            pNode->m_pNext = pNode->m_pNext->m_pNext;
        }
    }
    
    if (pToBeDeleted != nullptr) {
        delete pToBeDeleted;
        pToBeDeleted = nullptr;
    }
}

摘抄资料:《剑指offer》

相关文章

  • python 循环单向链表

    单向循环链表python实现 循环链表实现 头节点添加 尾节点添加 插入 删除 查找

  • 数据结构-单向链表

    单向链表的结构 Node节点 根据index获取节点 添加 删除 获取index位置的元素 清空 虚拟头节点的单向...

  • 单向链表 添加、删除节点

    单向链表的节点定义 往链表的末尾添加一个节点 在链表中找到第一个含有某值的结点并删除该节点 摘抄资料:《剑指offer》

  • 单向链表算法

    单向链表 反转单向链表 单链表查找倒数第k个节点 单链表递归倒序打印 单链表排序 单链表删除重复节点

  • c语言插入删除链表

    1.题目描述 输入一个单向链表和一个节点的值,从单向链表中删除等于该值的节点,删除后如果链表中无节点则返回空指针。...

  • 面试题18. 删除链表的节点

    删除链表的节点 题目描述 给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。 返回删除后的链表的...

  • LeetCode 每日一题 [51] 除链表的节点

    LeetCode 删除链表的节点 [] 给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。 返回...

  • 链表相关

    总结一下链表相关的操作 单链表节点的定义 实现单向链表的反向 删除单链表的所有节点

  • 剑指 Offer 18. 删除链表的节点

    给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。 返回删除后的链表的头节点。 思路: 单链表遍...

  • 单向链表的基本操作

    参考 一步一步写算法(之单向链表) 1. 单向链表的数据结构 2. 创建链表 3. 增加节点 4. 删除节点

网友评论

      本文标题:单向链表 添加、删除节点

      本文链接:https://www.haomeiwen.com/subject/rtfrsltx.html