
链表逆置 (20分)
发布日期:2021-05-08 02:55:42
浏览次数:13
分类:精选文章
本文共 1311 字,大约阅读时间需要 4 分钟。
单向链表逆转的实现思路如下:
要实现一个函数,将给定单向链表逆置,即将链表的头置为尾,尾置为头。链表的结点定义为:
int data; struct ListNode *next; };```函数接口定义为:```struct ListNode *reverse( struct ListNode *head );```其中,`head` 是用户传入的链表的头指针;函数 `reverse` 将链表 `head` 逆置,并返回结果链表的头指针。### 逆转链表的思路1. **初始化指针**: - `older` 指针指向原链表的头节点。 - `newer` 指针初始化为 `NULL`,将用来构建新的逆转链表。 - `temp` 指针用于跟踪 `older` 指针的下一个节点。2. **遍历链表**: - 当 `older` 没有指向 `NULL` 时,进入循环。 - 将 `temp` 设置为 `older` 的下一个节点。 - 将 `older` 的下一个节点指向 `newer`,即 `older->next = newer`。 - 将 `newer` 指针设置为当前的 `older` 节点,即 `newer = older`。 - 将 `older` 移动到 `temp` 的位置,即 `older = temp`。3. **返回结果**: - 当循环结束时,`newer` 指针指向逆转后的链表的头节点。### 代码实现```cstruct ListNode *reverse(struct ListNode *head) { struct ListNode *older = head; struct ListNode *newer = NULL; struct ListNode *temp = NULL; while (older != NULL) { temp = older->next; older->next = newer; newer = older; older = temp; } return newer;}
代码解释
初始化指针:
older
初始化为head
,即原链表的头节点。newer
初始化为NULL
,用于构建新的逆转链表。temp
用于跟踪older
的下一个节点。
循环处理:
- 当
older
不为NULL
时,执行循环。 - 将
temp
设置为older
的下一个节点。 - 使
older
的下一个节点指向newer
。 - 将
newer
设置为当前的older
节点。 - 更新
older
为temp
,继续处理下一个节点。
返回:
- 循环结束后,
newer
指针指向逆转后的链表的头节点,返回该指针。
样例测试
假设输入链表为:1→2→3→4→5→6→-1
逆转后,链表变为:-1→6→5→4→3→2→1
函数将正确处理这种情况,并返回逆转后的链表头节点。
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2025年03月25日 06时02分01秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
JavaWeb---实现JavaBean来接收参数、请求转发、域对象
2019-03-05
瀚高数据库中 java代码类型与bit对应(APP)
2019-03-05
选择性估算器绕过行安全策略漏洞
2019-03-05
PostgreSQL中的触发器
2019-03-05
对PostgreSQL数据库结构的宏观理解
2019-03-05
Postgresql 日期和时间类型
2019-03-05
xmin、xmax、cmin、cmax
2021-05-08
查询某表格上次进行vacuum的时间
2021-05-08
invalid byte sequence for encoding
2021-05-08
Highgo Database故障收集脚本
2021-05-08
failed to initialize the database
2019-03-05
invalid byte sequence for encoding
2019-03-05
银河麒麟系统配置apt网络源
2019-03-05
第七周 4.12-4.18
2019-03-05
程序设计入门14 结构体
2019-03-05
程序设计基础75 tips 广度搜索细节问题
2019-03-05
笨办法学python之数据类型
2019-03-05
笨办法学Python之将对象名的字符串类型,转化成相应对象
2019-03-05
ArduPilot源码极速下载手册(一文告别github慢速问题)
2019-03-05
聊一聊那些应该了解的大佬(飞控,人工智能方向)
2019-03-05