题目:给定一个单向无环链表,开发一个算法,判断该链表是否是回文链表。
工具/原料
1
Eclipse
2
JDK1.8
方法/步骤
1
编写一个静态内部类,表示链表节点,通过该类对象可以构建一条单向链表结构,图示代码。
2
实现算法,算法思想:1. 获取原始链表的中间节点,并断链,将链表平分为两个链表。2. 将后一个链表的反转。3. 逐个节点比较两个链表,直到某个链表遍历完毕。图示,通过快矿敏娃慢指针算法,获取一条单向链表的中间节点。
3
编写一个函数,通过递归调用,将一条单向无环链表反转。
4
编写一个函数,逐个节点遍历判断两个链表是否相等,直到前一个链表遍历完趴柱毕,注意,两条链表长度相等,或者前一个救救链表较短。
6
编写一个函数,可将一条单向无环链表转变为一个字符串,用于辅助本地测试。
7
编写并运行本地测试主方法,观察控制台输出,符合预期,本地测试通过。
8
平台提交算法,测试通过。
注意事项
对于空链表和只包含一个节点的链表,默认为回文链表
上一篇:如何用python实现字符串翻转
下一篇:java怎样将字符串替换为回车