题目:给定一条单向无环链表,按照首尾节点交错的方式对链表重排,比如原始链表的结构为:L0->L1->L2...->Ln-1->Ln ,重排后的链表结构为:L0->Ln->L1->Ln-1->L2...。
工具/原料
1
Eclipse
2
JDK1.8
方法/步骤
1
编写一个表示链表节点的静态内部类,通过该类对象可以构建一条单向链表结构。
2
编写一个工具函数,通过该函数,可以将一条链表结构进行翻转。
3
实现算法,步骤如下:1. 通过快慢指针获取到链表中间节点,断链,将链表分为左右两部分;2. 将右部分子链表翻转;3. 将左子链表和翻转后的右子链表重新链接为一条新链表即可。
4
编写一个工具函数,可在控制台输出链表结构,用于辅助本地测试。
5
编写本地测试主方法。
6
运行本地测试主方法,观察控制台输出,符合预期,本地测试通过。
7
平台提交算法,测试通过。
注意事项
只能通过移动原链表节点完成操作。
上一篇:如何使用GList双向链表
下一篇:如何使用c语言实现单向链表