gpt4 book ai didi

c++ - 链表的两次删除有什么区别?

转载 作者:行者123 更新时间:2023-11-28 04:22:58 24 4
gpt4 key购买 nike

我写了两种删除给定节点的方法,虽然它们是一样的。然而,它们给出了不同的结果。

首先,

    node *q = c->next;
c->data = q->data; second: c->data = c->next->data;
c->next = q->next; c->next = c->next->next;
delete q; delete c->next;

我试试这个例子(链表:1,2,3,4,5,6,7,8,9,10 和 c==3)第一种方法给出的结果是:1,2,4,5,6,7,8,9,10,这就是我想要的

但第二个给出:1,2,4,-572662307我不明白是什么造成了不同。

最佳答案

一个显着的区别是,在第一个之后,c->next 将指向过去(在算法之前)c->next->next .在第二个之后,c->next 将指向一个已删除的节点。

另一个区别是第一个删除了算法之前的c->next,而第二个删除了以前是c->next->next<的节点 在算法之前。

关于c++ - 链表的两次删除有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55025630/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com