LeetCode|234.回文链表
题目描述
- 等级:
简单
请判断一个链表是否为回文链表。
示例 1:
1 | 输入: 1->2 |
示例 2:
1 | 输入: 1->2->2->1 |
进阶:
你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?
思路
对于单链表
,回文
,快慢指针
,链表反转
的考察。
“回文”是指正读反读都能读通的句子,它是古今中外都有的一种修辞方式和文字游戏,如“我为人人,人人为我”等。在数学中也有这样一类数字有这样的特征,成为回文数(palindrome number)。 [1]
设n是一任意自然数。若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数。例如,若n=1234321,则称n为一回文数;但若n=1234567,则n不是回文数。 [1]
注意:
- 偶数个的数字也有回文数124421
- 小数没有回文数
链表反转请参考:反转单链表
通过两个快慢指针可以获取链表中的中间位置节点。(快慢指针步数相差一倍)
答案
1 | public boolean isPalindrome(ListNode head) { |
结果
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ClawHub的技术分享!