c++ 链表反转代码 c++单链表反转算法


链表反转通过调整节点指针实现,提供迭代和递归两种方法。1. 定义节点结构;2. 迭代法用三个指针逐个翻转;3. 递归法从后往前调整指针;4. 测试示例创建链表并反转输出。

c++ 链表反转代码 c++单链表反转算法

链表反转是C++数据结构中的经典问题,核心思路是通过调整每个节点的指针方向来实现反转。下面给出一个完整的单链表反转实现,包含定义、创建、反转和打印操作。

单链表节点定义

首先定义链表节点结构:

struct ListNode {
    int val;
    ListNode* next;
    ListNode(int x) : val(x), next(nullptr) {}
};

迭代法反转链表

使用三个指针(prev, curr, next)逐个翻转指向:

ListNode* reverseList(ListNode* head) {
    ListNode* prev = nullptr;
    ListNode* curr = head;
    while (curr != nullptr) {
        ListNode* next = curr->next;  // 保存下一个节点
        curr->next = prev;            // 反转当前节点指针
        prev = curr;                  // 移动 prev 前进一步
        curr = next;                  // 移动 curr 前进一步
    }
    return prev;  // 新的头节点
}

递归法反转链表

递归到底部后,从后往前调整指针:

Picit AI Picit AI

免费AI图片编辑器、滤镜与设计工具

Picit AI 172 查看详情 Picit AI
ListNode* reverseListRecursive(ListNode* head) {
    if (head == nullptr || head->next == nullptr) {
        return head;
    }
    ListNode* newHead = reverseListRecursive(head->next);
    head->next->next = head;
    head->next = nullptr;
    return newHead;
}

完整测试示例

构建一个简单链表 1->2->3->4 并进行反转:

#include <iostream>
using namespace std;
<p>// 打印链表
void printList(ListNode* head) {
while (head) {
cout << head->val << " ";
head = head->next;
}
cout << endl;
}</p><p>int main() {
// 创建链表 1->2->3->4
ListNode* head = new ListNode(1);
head->next = new ListNode(2);
head->next->next = new ListNode(3);
head->next->next->next = new ListNode(4);</p><pre class='brush:php;toolbar:false;'>cout << "原链表: ";
printList(head);

head = reverseList(head);  // 反转

cout << "反转后: ";
printList(head);

return 0;

}

输出结果为:
原链表: 1 2 3 4
反转后: 4 3 2 1

两种方法时间复杂度都是 O(n),空间上迭代法 O(1),递归法 O(n) 因为调用栈。实际开发中推荐使用迭代法,更稳定且节省内存。

基本上就这些。

以上就是c++++ 链表反转代码 c++单链表反转算法的详细内容,更多请关注其它相关文章!


# 都是  # 建阳区企业seo  # 网站优化去哪里学比较好  # 淄博网站制作托管推广  # 芜湖镜湖区推广营销  # 广义传统seo  # url对seo影响  # 武汉优化网站推广  # 漳州网站seo优化报价  # 做一个推广网站成本  # 眉山网站免费推广公司  # 与其他  # 内存管理  # node  # 滤镜  # 如何使用  # 自定义  # 两种  # 数据结构  # 链表  # 递归  # stream  # ios  # c++  # ai  # 栈 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894 】


相关推荐: uc浏览器官网网页版使用 uc浏览器官网免费在线首页  HTML中多图片上传与预览:解决ID冲突的专业指南  抖音号已注销怎么解绑企业认证?不解绑企业认证会怎样?  解决VS Code中Python版本冲突与输出异常的指南  OpenWeatherMap API:通过城市名称获取天气预报数据指南  TikTok视频播放不流畅怎么办 TikTok视频播放优化方法  mail.qq.com登录入口 QQ邮箱网页版直达  VS Code源代码管理(SCM)视图的进阶使用技巧  Win10运行窗口在哪里打开 Win10调出运行命令框快捷键【技巧】  MySQL多重关联查询:利用别名高效获取同一表的多个关联字段  智学网app怎么登录忘记密码_智学网app忘记密码找回与重新登录操作方法  PySimpleGUI中实现键盘按键与按钮事件绑定教程  vivo云服务一直提示空间不足怎么办 怎么办vivo云服务老是提示空间不足  《梦想世界:长风问剑录》药师一图流分享  纯CSS实现自适应宽度与响应式布局的水平按钮组  AO3中文入口稳定分享_AO3官网HTTPS看文详解  TikTok私信无法发送表情怎么办 TikTok消息表情发送修复方法  《爱南宁》认证电动车方法  Python模块化编程:避免循环导入与共享函数的最佳实践  AO3永久镜像入口开放_AO3最新网址兼容所有浏览器  电脑的“恢复环境(WinRE)”找不到怎么办_Windows系统恢复环境重建【高级修复】  《360浏览器》自动保存账号密码设置方法  《合金装备4》有望推出重制版!制作人发话了  动漫岛汉化官网网 动漫岛官方动漫汉化地址  抖音商城官网是什么_抖音商城官方网址与访问方法  视频号视频怎么提取文案?提取的文案如何优化与使用?  抖音网页版官方链接 抖音网页版官网链接入口  CSS过渡如何实现按钮悬停效果_transition属性控制背景颜色变化  Excel如何快速合并单元格内容_Excel文本合并与函数操作技巧  企查查官网和爱企查 企查查企业查询官网入口  《浙里办》电子发票开具方法  百度小说看书时如何翻页_百度小说手动翻页与自动翻页设置  虫虫漫画排行榜单入口_虫虫漫画编辑推荐入口  中大网校app做题记录清除方法  解决SQLAlchemy模型跨文件关联的Linter兼容性指南  CSS如何使用outline-offset与颜色组合突出元素边框  C++怎么解决数值计算中的精度问题_C++浮点数误差与数值稳定性分析  LocoySpider如何批量采集电商商品_LocoySpider电商采集的模板应用  江苏大剧院会员卡购买步骤  歌词怎么展示在|直播|间视频号?有什么注意事项?  c++中的const关键字用法大全_c++ const正确使用指南  鸣潮历史学家灯塔位置一览  《花瓣》创建专辑方法  163邮箱网页版入口 163邮箱在线使用  《广发易淘金》国债逆回购操作教程  Go App Engine 项目结构与包管理深度指南  解决 Vue 3 组件未定义错误:理解 createApp 与根组件的正确使用  食品生产用水只要符合国家规定的生活饮用水卫生标准就可以吗  yandex网页版直接登录 yandex官方入口平台访问方法  背部总是隐隐作痛怎么回事 背痛如何改善 

 2025-11-28

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.