题目名称:回文链表
请判断一个链表是否为回文链表。
示例 1:
输入: 1->2
输出: false
示例 2:
输入: 1->2->2->1
输出: true
进阶: 你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?
解法
- 结合栈解决
栈解法
var isPalindrome = function (head) {
if (!head) return true
const queue = []
let cur = head
while (cur) {
queue.push(cur.val)
cur = cur.next
}
while (queue.length >= 1) {
if (queue.shift() !== queue.pop()) return false
}
return true
};
说明
- 本题解已同步leetcode-js-simple/04.[ 234 ] 回文链表,可以复制代码进行调试。
- 总结出了一套亲测有效的前端无痛刷题项目,有助于算法小白平稳入门,详见leetcode-js-roadmap,希望对从零开始刷题的前端小伙伴们带来帮助~
本文正在参与「掘金 2021 春招闯关活动」, 点击查看 活动详情