Description
请判断一个链表是否为回文链表。
示例 1:
输入: 1->2
输出: false
示例 2:
输入: 1->2->2->1
输出: true
Solution 迭代
def isPalindrome(self, head: ListNode) -> bool:
vals = []
current_node = head
while current_node is not None:
vals.append(current_node.val)
current_node = current_node.next
return vals == vals[::-1]
作者:LeetCode
链接:https://leetcode-cn.com/problems/palindrome-linked-list/solution/hui-wen-lian-biao-by-leetcode/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
Solution 递归
使用一个全局变量self.head来遍历头。
class Solution:
def isPalindrome(self, head: ListNode) -> bool:
self.ans = True
self.head = head
def helper(head):
if not head: return
helper(head.next)
if head.val != self.head.val:
self.ans = False
self.head = self.head.next
helper(head)
return self.ans