为什么我不能删除我的节点和参考
why i cannot delete my node with reference
void deleteElement(LinkedListElement<char> *&pending)
{
if (pending->Next) {
char value = pending->Next->Data;
pending->Data = value;
LinkedListElement<char> *temp = pending->Next;
pending->Next = pending->Next->Next;
delete temp;
}else{
delete pending;
pending = NULL;
}
}
LinkedListElement<char> *l1 = new LinkedListElement<char>('a');
LinkedListElement<char> *l2 = new LinkedListElement<char>('b');
LinkedListElement<char> *l3 = new LinkedListElement<char>('a');
LinkedListElement<char> *l4 = new LinkedListElement<char>('c');
l1->setNext(l2); l2->setNext(l3); l3->setNext(l4);
printLinkedList(l1);
deleteElement(l4);
printLinkedList(l1);
简单棘手的删除节点 C++ 我想问的是 else 语句,如果链表是 end ,所以我可以删除 end 本身。
但两者的打印功能,将始终打印ABAC,第二种方式ABAC。因为我只是传递带有引用的参数,(&),我想如果我想删除 L4我不需要更改 l3->Next,因为我可以将 l4 更改为 NULL,而 l3->Next 将为 NULL。
我尝试使用
delete pending; pending=NULL;
为什么它不起作用,两个打印功能始终打印ABAC
你delete l4
,但你永远不会改变l3
,它指向l4
的内存(现已删除),其中仍然包含数据('c')
你需要
l3->setNext(NULL);
从列表中删除元素(当然,您仍然必须将其删除)
要使用 deleteElement
函数,您需要更改它以循环访问列表(伪代码):
void deleteElement( Element head , Element toBeDeleted)
{
//are we deleting head (the first element of the list?)
//yes then head should be nulled, and delete as normal
current = head ; ancestor = head;
//scan through list (current becomes current->next until no more)
//until we find toBeDeleted
//maintain ancestor as we go
//if found set ancestor->next to current->next
//delete toBeDeleted
}
相关文章:
- 反向给定链表中的K节点
- 如果我只是不访问queue_front节点的子节点,而是将它们推到队列中呢?还是BFS吗
- C++错误消息*成员参考.**初学者*
- Boost Graph Library,修复节点大小
- C++A*算法并不总是在路径中具有目标节点
- 如何找到2个单链表的公共节点
- 在决定是通过参考还是通过价值时,尺寸真的是一个问题吗
- 计算每个节点的树高,帮助我解释这个代码解决方案
- 参考资源文件VC++中的$(SolutionDir)
- C++:Application.cpp中抛出了未解析的外部符号(解决方案在问题的末尾,供未来的读者参考)
- 为什么我的删除节点函数实际上没有删除节点?
- 我们可以删除链表中静态内存中的节点吗
- 如何在pugixml中获取节点的内部XML
- 为什么我们要为avl树实现返回一个指向节点的指针,而不是void函数
- C++RapidXml-使用first_node()遍历以修改XML文件中节点的值
- 为什么在运算符重载时需要参考?
- 为什么C++对链表中的下一个节点使用指针,而像 C# 或 Java 这样的语言只使用类 Node 的名称?
- C++17 - 使用自定义分配器的节点提取/重新插入 - 适用于 clang++/libc++,但不适用于 libstd
- 为什么我不能删除我的节点和参考
- 将节点附加到C++树(参考和指针帮助)