weixin_43350585
weixin_43350585
采纳率100%
2019-11-18 10:44 阅读 529

数据结构/队列/编程题

5

数据结构

队列

一个整数队列中有n个元素,请问:是否存在与n无关的方法,来删除这个队列中的一个特定的元素。如果可能,请给出你的数据结构和删除算法,算法用函数表示,函数的定义如下:如果不可能,请说明你的理由
函数定义:
void DeleteNode(ListNode *pListHead,ListNode *pToBeDeleted)
{
}

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

2条回答 默认 最新

  • 已采纳
    caozhy 从今以后生命中的每一秒都属于我爱的人 2019-11-18 10:55

    说白了就是用链表,假设你带头节点(头节点不存储数据),代码如下。

    void DeleteNode(ListNode *pListHead,ListNode *pToBeDeleted)
    {
    if (!pListHead || pToBeDeleted)) return;
    ListNode * pre = pListHead;
    while(pre->next !=pToBeDeleted && pre->next != NULL) pre = pre->next;
    if (pre->next == pToBeDeleted) {
    pre->next = pToBeDeleted->next;
    free(pToBeDeleted);
    }
    }
    
    点赞 评论 复制链接分享
  • chenxizhan1995 chenxizhan1995 2019-11-19 02:18

    巧了,前段时间看到一个连接,正好对应这个题目的答案。常量时间复杂度删除单链表给定节点。我给抄了来
    https://chenxizhan.blog.csdn.net/article/details/102940989

    点赞 评论 复制链接分享