反转链表 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++ [重复] 的相关文章

  • URL 的正则表达式

    我已经编写了正则表达式来验证 URL 它可以是这样的 example com www example com http www example com http www example com https www example com h
  • 哪些 iomanip 操纵器具有“粘性”?

    我最近在创建一个stringstream由于我错误地假设std setw 会影响每次插入的字符串流 直到我明确更改它 然而 插入后它总是被取消设置 With timestruct with value of Oct 7 9 04 AM st
  • 在静态断言和运行时错误之间自动选择

    我有一个执行除法并检查对齐的宏 define BYTES TO WORDS x CHECK ALIGNMENT x 2 x 2 我想实施CHECK ALIGNMENT作为一个总是返回 1 的宏 并且如果满足以下条件则触发错误x不除以 2 宏
  • 如何在函数中将结构成员作为指针传递?

    问题是我有一个结构是另一个 主要 结构的成员 我编写了一个函数来清除第一个结构 它需要一个指向结构的指针 我想使用该函数来清除主要结构内的结构 但我不确切知道哪种方法是正确的 为了更好地解释它 这里有一些代码 我有一个结构 定义为 type
  • 使用inotify监控文件

    我正在使用 inotify 来监视本地文件 例如使用 root temp inotify add watch fd root temp mask 删除该文件后 程序将被阻止read fd buf bufSize 功能 即使我创建一个新的 r
  • ASP .NET MVC 5 - 客户地址一对一关系

    我在这里查看了论坛 实际上发现了一些类似的问题 但不是相同的问题 类似的解决方案没有给我正确的答案 我正在使用实体框架和代码优先方法来处理 ASP NET MVC 5 我想建立客户 gt 地址一对一关系的模型 我建模的是 客户等级 publ
  • 限制纬度和经度值的模数

    我有代表纬度和经度的双精度数 我可以轻松地将经度限制为 180 0 180 0 具有以下功能 double limitLon double lon return fmod lon 180 0 360 0 180 0 这是有效的 因为一端是排
  • C# 动态 Linq 变量Where 子句

    我正在按照 Scott Gu 的文章创建动态 LINQhttp weblogs asp net scottgu archive 2008 01 07 dynamic linq part 1 using the linq dynamic qu
  • 模拟 EF core dbcontext 和 dbset

    我正在使用 ASP NET Core 2 2 EF Core 和 MOQ 当我运行测试时 我收到此错误 消息 System NotSupportedException 非虚拟 可在 VB 中重写 成员上的设置无效 x gt x Movies
  • 如何在Qt无框窗口中实现QSizeGrip?

    如何使用 Qt 无框窗口实现 QSizeGrip 代码会是什么样的 您只需在布局内窗口的一角添加 QSizeGrip 即可使其保持在该角落 QDialog dialog new QDialog 0 Qt FramelessWindowHin
  • DLL 需要访问其应用程序的符号

    在 C 中 DLL 是否可以访问加载它的应用程序的某些符号 我有一个加载插件 dll 的应用程序 这些插件需要访问该应用程序的某些API 是否可以在不创建共享此 API 的新 DLL 的情况下实现此目的 函数指针结构适合这种情况吗 示例 主
  • 是否有更好(更简单)的方法来获取特定域 SID?

    我被指派修改 WinForms 应用程序 主要检查登录用户是否属于特定域 这是我到目前为止所想出的 byte domainSid var directoryContext new DirectoryContext DirectoryCont
  • 如何使用 ASP.NET MVC 4.0 DonutOutputCache VaryByCustom 使缓存失效

    我正在为我的 ASP NET 应用程序使用 DevTrends MvcDonutCaching 包 它工作得很好 我目前遇到的一个问题是使我为子操作设置的 VaryByCustom 缓存无效 这是我用于 VaryByCustom 设置的一些
  • MSBuild 将动态生成的文件复制为项目依赖项的一部分

    我有一个自定义 msbuild 任务 它正在生成一些输出文件到 ProjectA 的输出目录 TargetDir 当前的代码是这样的
  • XPath 选择具有特定属性值的元素?

    我在使用 XPath 选择节点时遇到问题 我将展示一个示例 由于实际数据量很大 xml 文件被缩短了 这是 XML 的子集
  • g++4.9 不支持 std::align

    在学习对齐问题等时 我意识到我的 g 4 9 macports OS X 实现不支持std align 如果我尝试编译 使用 std c 11 此示例代码来自http www cplusplus com reference memory a
  • 如何在OpenGL中像这样绘制连接的带状线

    我想用以下方式绘制一系列连接线 GL LINE STRIP 我尝试过自己编写代码 但没有得到想要的结果 所以我来到这里 帮助我找出我错在哪里 这里我只给出我的draw 函数 glBegin GL LINE STRIP glVertex2f
  • 是否可以从.NET Core中间件检索控制器的操作结果?

    public class UsersController APIControllerBase public UsersController public Client Get return new Client ClientID 1 Las
  • 第一个随机数始终小于其余随机数

    我碰巧注意到 在 C 中 使用 std rand 方法调用的第一个随机数大多数时候都明显小于第二个随机数 关于 Qt 实现 第一个几乎总是小几个数量级 qsrand QTime currentTime msec qDebug lt lt q
  • Python 中的 C 指针算术

    我正在尝试将一个简单的 C 程序转换为 Python 但由于我对 C 和 Python 都一无所知 这对我来说很困难 我被 C 指针困住了 有一个函数采用 unsigned long int 指针并将其值添加到 while 循环中的某些变量

随机推荐

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

    这个问题在这里已经有答案了 这是我想要实现的目标的示例 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