我完成了插入,在循环链表中搜索,但为了删除,我得到了编译器错误......
以下是我的节点结构。
struct node
{
int p_data;
struct node* p_next;
node(node* head, int data)
{
p_next = head;
p_data = data;
}
explicit node(int data)
{
p_next = nullptr;
p_data = data;
}
};
node* remove_circular(node* head, node* target)
{
if (head == target->p_next)
{
delete head;
return nullptr;
}
auto next_pointer = target->p_next;
target->p_data = next_pointer->p_data;
target->p_next = next_pointer->p_next;
delete target->p_next;
return target;
}
在主函数中我调用
head = remove_circular(head, head);
head = remove_circular(head, temp);
这是删除 head 元素和 temp 指向的另一个元素。但我收到错误
有人知道从循环列表中删除一个元素吗?
我将其更改为删除目标-> p_next;但现在它会删除列表中的所有内容。任何想法???