234.回文链表
题目
LeetCode 简单
题目
给你一个单链表的头节点 head,请你判断该链表是否为回文链表。如果是,返回 true;否则,返回 false。
示例:
输入:head = [1,2,2,1]
输出:true
输入:head = [1,2]
输出:false
题解
方法:双指针
双指针
O(n) O(n)
ts
function isPalindrome(head: ListNode | null): boolean {
const vals = []
while (head !== null) {
vals.push(head.val)
head = head.next
}
for (let i = 0, j = vals.length - 1; i < j; ++i, --j) {
if (vals[i] !== vals[j]) {
return false
}
}
return true
}
const list = new LinkedList([1, 2, 2, 1])
console.log('🌰', isPalindrome(list.head))
const list2 = new LinkedList([1, 2])
console.log('🌰', isPalindrome(list2.head))