数据结构
队列
一个整数队列中有n个元素,请问:是否存在与n无关的方法,来删除这个队列中的一个特定的元素。如果可能,请给出你的数据结构和删除算法,算法用函数表示,函数的定义如下:如果不可能,请说明你的理由
函数定义:
void DeleteNode(ListNode *pListHead,ListNode *pToBeDeleted)
{
}
一个整数队列中有n个元素,请问:是否存在与n无关的方法,来删除这个队列中的一个特定的元素。如果可能,请给出你的数据结构和删除算法,算法用函数表示,函数的定义如下:如果不可能,请说明你的理由
函数定义:
void DeleteNode(ListNode *pListHead,ListNode *pToBeDeleted)
{
}
说白了就是用链表,假设你带头节点(头节点不存储数据),代码如下。
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);
}
}