反转链表 C++ [重复]

2023-12-04

可能的重复:
无法反转链表

我正在尝试反转链接列表:

void LinkedList::reverseList()
{
    Node *next=_head;
    Node *prev=0;
    while(next!=0)
    {
        Node *tmp=next->_next;
        next->_next=prev;
        prev=next;
        next=tmp;
    }
}

假设列表是:4->3->2->1

当我打印列表时,我只看到1(打印功能很好)。

有什么帮助吗?

Thanks


既然你说你想自己找到问题所在,那么我只给你一个提示,而不是解决方案。

Your reverse函数的工作原理是它成功地反转了列表。那不是问题。您可能有 2 个电话print。一张在前,一张在后,相反。关于传递给的节点,您需要注意什么print在这两种情况下?这告诉你什么?

EDIT:

既然你说你已经找到了问题,那么我将发布实际的解决方案。

In your reverse代码,你永远不会更新_head列表中的,但是当你reverse列表中,头部实际上改变了4 to 1。既然你从来不更新_head, 你打电话时print第二次(之后reverse致电)您开始打印1,这是列表的末尾,也是打印的唯一节点。

解决办法就是更新_head当你反转列表时。最简单的方法是在每次迭代中更新它。这可能比其他可能的解决方案效率稍低,但它不会改变算法的时间复杂度——它仍然是 O(n):

void LinkedList::reverseList()
{
    Node *next=_head;
    Node *prev=0;
    while(next!=0)
    {
        Node *tmp=next->_next;
        next->_next=prev;
        _head = next;
        prev=next;
        next=tmp;
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

反转链表 C++ [重复] 的相关文章

  • 每个托管线程是否都有自己对应的本机线程?

    我想知道是否在 Net 中创建托管线程 通过调用Thread Start 导致在后台创建一个本机线程 那么托管线程是否有对应的本机线程呢 如果是 当托管线程等待或睡眠时 是否意味着相应的本机线程也在等待或睡眠 是的 NET 线程映射到所有当
  • 未提供参数时如何指定 C# System.Commandline 行为?

    在我的控制台应用程序中 当未提供控制台参数时 将执行我指定列表 在本例中为参数 3 的任何处理程序 调用该处理程序时 布尔参数设置为 false 但对我来说 根本不调用它更有意义 如何防止这种情况发生并显示帮助文本 using System
  • 注销租约抛出 InvalidOperationException

    我有一个使用插件的应用程序 我在另一个应用程序域中加载插件 我使用 RemoteHandle 类http www pocketsilicon com post Things That Make My Life Hell Part 1 App
  • 计算 Richtextbox 中所有单词的最有效方法是什么?

    我正在编写一个文本编辑器 需要提供实时字数统计 现在我正在使用这个扩展方法 public static int WordCount this string s s s TrimEnd if String IsNullOrEmpty s re
  • 在 LINQ 中按 Id 连接多表和分组

    我想按categoryId显示列表产品的名称组 这是我的代码 我想要我的视图显示结果 Desktop PC HP Red PC Dell Yellow PC Asus Red SmartPhone Lumia 720 Blue 我的组模型
  • 复制目录内容

    我想将目录 tmp1 的内容复制到另一个目录 tmp2 tmp1 可能包含文件和其他目录 我想使用C C 复制tmp1的内容 包括模式 如果 tmp1 包含目录树 我想递归复制它们 最简单的解决方案是什么 我找到了一个解决方案来打开目录并读
  • 如何创建包含 IPv4 地址的文本框? [复制]

    这个问题在这里已经有答案了 如何制作一个这样的文本框 我想所有的用户都见过这个并且知道它的功能 您可以使用带有 Mask 的 MaskedTestBox000 000 000 000 欲了解更多信息 请参阅文档 http msdn micr
  • java.io.Serialized 在 C/C++ 中的等价物是什么?

    C C 的等价物是什么java io Serialized https docs oracle com javase 7 docs api java io Serializable html 有对序列化库的引用 用 C 序列化数据结构 ht
  • 使用接口有什么好处?

    使用接口有什么用 我听说它用来代替多重继承 并且还可以用它来完成数据隐藏 还有其他优点吗 哪些地方使用了接口 程序员如何识别需要该接口 有什么区别explicit interface implementation and implicit
  • 将 Word 文档另存为图像

    我正在使用下面的代码将 Word 文档转换为图像文件 但是图片显得太大 内容不适合 有没有办法渲染图片或将图片保存到合适的尺寸 private void btnConvert Click object sender EventArgs e
  • 标准化 UTF-8 到底是什么?

    The 重症监护室项目 http userguide icu project org transforms normalization 现在也有一个PHP库 http us php net manual en class normalize
  • C#:帮助理解 UML 类图中的 <>

    我目前正在做一个项目 我们必须从 UML 图编写代码 我了解 UML 类图的剖析 但我无法理解什么 lt
  • C# 中的合并运算符?

    我想我记得看到过类似的东西 三元运算符 http msdn microsoft com en us library ty67wk28 28VS 80 29 aspx在 C 中 它只有两部分 如果变量值不为空 则返回变量值 如果为空 则返回默
  • Cmake 链接共享库:包含库中的头文件时“没有这样的文件或目录”

    我正在学习使用 CMake 构建库 构建库的代码结构如下 include Test hpp ITest hpp interface src Test cpp ITest cpp 在 CMakeLists txt 中 我用来构建库的句子是 f
  • 使用 %d 打印 unsigned long long

    为什么我打印以下内容时得到 1 unsigned long long int largestIntegerInC 18446744073709551615LL printf largestIntegerInC d n largestInte
  • 使用 C# 读取 Soap 消息

  • 如果没有抽象成员,基类是否应该标记为抽象?

    如果一个类没有抽象成员 可以将其标记为抽象吗 即使没有实际理由直接实例化它 除了单元测试 是的 将不应该实例化的基类显式标记为抽象是合理且有益的 即使在没有抽象方法的情况下也是如此 它强制执行通用准则来使非叶类抽象 它阻止其他程序员创建该类
  • 方法优化 - C#

    我开发了一种方法 允许我通过参数传入表 字符串 列数组 字符串 和值数组 对象 然后使用这些参数创建参数化查询 虽然它工作得很好 但代码的长度以及多个 for 循环散发出一种代码味道 特别是我觉得我用来在列和值之间插入逗号的方法可以用不同的
  • 我的班级应该订阅自己的公共活动吗?

    我正在使用 C 3 0 遵循标准事件模式我有 public event EventHandler
  • 当从finally中抛出异常时,Catch块不会被评估

    出现这个问题的原因是之前在 NET 4 0 中运行的代码在 NET 4 5 中因未处理的异常而失败 部分原因是 try finallys 如果您想了解详细信息 请阅读更多内容微软连接 https connect microsoft com

随机推荐

  • 有没有办法捕获管道命令中的失败? [复制]

    这个问题在这里已经有答案了 这是我想要实现的目标的示例 bin bash set e abort if error command1 2 gt 1 command2 我注意到有时command1失败 但 command2 没有失败 shel
  • 如何在Windows批处理文件中嵌入文本文件[重复]

    这个问题在这里已经有答案了 我需要创建一个写入文本文件 可能包括变量 的批处理文件 在带有 bash 的 Unix 中 这是微不足道的 bin bash ver 1 2 3 cat gt file txt lt
  • VueJS 两路过滤器

    是否可以在 VueJS 中使用双向过滤器 我尝试过 但在新文档中找不到它 I tried
  • 将以 @ 开头的文本替换为锚标记

    我有一个 html 页面 现在我显示一个包含以 开头的文本的字符串 我需要做的是使用 javascript 替换以 开头的字符串中的所有文本与锚标记 E g 我的字符串 与 sarah333 和 kevin0955 在海滩度过了愉快的时光
  • 如何反转灰度图像并将其转换为二值图像?

    I want to create an image like this From an image like this alt text http internationalpropertiesregistry com Server sho
  • MySQL 中加载数据文件的访问被拒绝

    我在 PHP 中一直使用 MySQL 查询 但是当我尝试时 LOAD DATA INFILE 我收到以下错误 1045 用户 user localhost 的访问被拒绝 使用密码 YES 有谁知道这意味着什么 我也刚刚遇到这个问题 我必须添
  • OpenCv 3d 拼接全景图

    我有 7 张来自 gopro 的图像 装备中有 5 个摄像头 一个用于顶部 一个用于底部 它们都是 gopro 相机 我想将所有这些图像拼接在一起以创建 3D 全景图 我已经能够使用 opencv stitching detailed cp
  • JavaScript 删除合并的表格单元格

    过去几周我一直在开发一个日程安排网站 我将时间表显示为 PHP 生成的 html 表格 我使用合并单元格来显示事件 我在尝试使用 JS 删除事件时遇到了问题 由于这些是合并单元格 使用行跨度 当我删除一个单元格时 我必须遍历表格并在需要时重
  • 第谷无法从不同的 Reactor 构建中解析从产品到 Eclipse 功能的引用

    我有两个反应堆构建 第一个构建了一些捆绑包和相应的功能 成功后clean install该功能位于我本地的 Maven 存储库中 第谷还生成了 p2 元信息 p2artifacts xml and p2metadata xml 第二个版本包
  • 如何在 Powershell 消息框中获取计时器?

    我试图在我用 PS Forms 创建的消息框中显示一个计时器 我想要这样的东西 1 秒后显示 您的电脑将在 10 秒后关闭 您的电脑将在 9 秒后关闭 您的电脑将在 8 秒后关闭 等等 希望你能帮我 我没有看到刷新消息框中文本的方法 如果我
  • Linux编译 |入口点无效

    我正在编译一个linux内核使用 mipsel 工具链 一切工作正常 除了最后一点指出无效的入口点 sh 0 Can t open arch mips boot tools entry rm f arch mips boot vmlinux
  • 从 asp.net 中的 gridview 获取选中的行

    我有一个GridView在 ASP net 中我有一个CheckBox柱子 用户可以切换CheckBox 现在 我想要的是 当用户单击按钮时 来自GridView哪里的CheckBox被选中应该显示 在另一个按钮上 应该显示相反的状态 我不
  • ios iPhone模拟器是否导致内存使用分析膨胀?

    我正在尝试在我的应用程序中处理一个大文本文件 我知道我要小心读取数据时消耗的内存量 一旦读取了一条数据 应用程序就不需要保留该数据 感谢 Martin R 和这篇文章逐行读取文件 URL帮助我开始努力 我正在尝试监视我的应用程序在读取大数据
  • 图像显示时改变形状

    我正在尝试显示此图像 因为我的目录中有此图像 但我用这段代码显示它 Mat img imread D vig png imshow image img waitKey imwrite D img jpg img 同一张图片显示如下 它出什么
  • Java VM 如何决定 user.dir 系统属性的值?

    我正在运行一个简单的 Java 程序 其目录结构如下 MyProject A project in my Eclipse IDE src Hello java 在 Hello java 中 我正在打印 user dir 系统属性的值 Sys
  • ASP.Net Core 生成了太多 cookie,我的应用程序无法处理

    我有一个测试应用程序 用于测试与 WSO2 Identity Server IDP 的集成 当它单独运行时 它工作得很好 它使 AspNetCore Antiforgery饼干和一个 AspNetCore Cookies曲奇饼 防伪 coo
  • 如何使用 C# 向 Sql Server 2005 数据库插入和读取 pdf 文件

    如何将pdf文件插入sql server 2005并从sql server读取pdf文件 如果您有兴趣使用数据库进行文件存储 请查看这篇来自 4guysfromrolla 的文章 它是面向网络的 但找到您需要的内容应该没有问题
  • 如何在bash脚本中读取csv文件到数组

    我编写了以下代码 将我的 csv 文件 具有固定的列数 但没有固定的行数 作为数组读入我的脚本中 我需要它是一个 shell 脚本 usernames x1 x2 x3 x4 username1 5 5 4 2 username2 6 3
  • 确定列表是否具有相等的连续元素

    我试图确定一个大列表是否具有相同的连续元素 那么我们说 lst 1 2 3 4 5 5 6 在这种情况下 我会返回 true 因为有两个连续的元素lst 4 and lst 5 是相同的值 我知道这可能可以通过某种循环组合来完成 但我想知道
  • 反转链表 C++ [重复]

    这个问题在这里已经有答案了 可能的重复 无法反转链表 我正在尝试反转链接列表 void LinkedList reverseList Node next head Node prev 0 while next 0 Node tmp next