当前位置: 首页 > 知识库问答 >
问题:

在链表冲销中更改一行会导致错误

董鸣
2023-03-14

它实际做的是创建另一个列表,遍历旧列表,并将元素始终添加到新列表的head

Node *reverseList(Node *oldList)
{
    Node* newList=NULL;

    while(oldList!=NULL)
    {
        Node *temp=oldList;
        oldList=oldList->next;

        temp->next=newList;
        newList=temp;  
    }
    return newList;
}

但是,当我决定重新实现这个想法而不查看这段代码时,我更改了oldlist=oldlist->next;的位置,并将其放在newlist=temp.之后

我的问题是这真的有什么不同吗?我无法理解其中的原因,因为毕竟您在遍历旧列表。为什么要求在*temp声明后立即执行?

共有1个答案

邢项禹
2023-03-14

做完之后

Node *temp = oldList;

两个指针都指向同一个地方。自

temp->next = newList;

将覆盖oldList的下一个指针(因为它在这个阶段指向的是与temp相同的东西),您需要首先从它的下一个指针更新oldList。

 类似资料:
  • 问题内容: 最近,我按照这篇文章的建议删除了项目中的所有scriptlet 。但是现在,如果我尝试更改其中一个视图,则会收到deferredExpression错误。为了摆脱错误,我只需要终止,然后重新启动项目即可。 这里发生了什么?eclipse是否无法即时编译jstl?有什么我可以更改的,所以我不必每次进行更改都重新部署吗? 堆栈跟踪 问题答案: java.lang.NoSuchFieldEr

  • Mysql 8.0.25 我想使用子句为我的datetime列设置默认值 Mysql 8文档说,在

  • java.lang.nosuchmethoderror:org.springframework.boot.builder.springapplicationbuilder.([ljava/lang/object;)V在org.springframework.cloud.bootstrap.bootstrapapplicationlistener.bootstrapserviceContext(bo

  • 问题内容: 我有一个ReactJS HTML表格组件,并使用方法更新了它的内容(单元格值)。这是基本代码: 您可以这样使用它: 大部分时间都在工作。我可以通过执行以下操作来更改数据(在函数中的某处): 如您所见,它将在表的末尾添加一行。但是,如果我尝试在此更新后设置初始数据,或者以任何方式通过设置为较小的数组(例如应删除最后一行)来 缩短 行数: 我收到此错误: TypeError:updated

  • HTTP头所在的位置 现在在Spring 5上-这被更改为 现在头从-{accept=[application/json],content-type=[multipart/form-data;boundary=8hfyfdj_y58snxrsdxenwliqdsyixs50],content-length=[51024]} 我搜索了很多,发现了一个类似的问题,这似乎更密切相关--升级到Spring

  • 问题内容: 我正在尝试构建Boost并生成dll,但是我所做的任何事情都无法解决问题。 这是我得到的: 创建库bin.v2 \ libs \ thread \ build \ msvc-11.0 \ dbg \ adrs-mdl-32 \ async- excpt-on \ thrd-mlt \ boost_thread-vc110-mt-gd-1_53.lib和对象bin.v2 \ libs \