[ 力扣234 ] 当链表遇到栈,栈结构快捷解决回文链表问题 | 刷题打卡

164 阅读1分钟

题目名称:回文链表

题目地址:leetcode-cn.com/problems/pa…

请判断一个链表是否为回文链表。

示例 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
};

说明

  1. 本题解已同步leetcode-js-simple/04.[ 234 ] 回文链表,可以复制代码进行调试。
  2. 总结出了一套亲测有效的前端无痛刷题项目,有助于算法小白平稳入门,详见leetcode-js-roadmap,希望对从零开始刷题的前端小伙伴们带来帮助~

本文正在参与「掘金 2021 春招闯关活动」, 点击查看 活动详情