ほぼ日刊競プロ leetcode 234. Palindrome Linked List
234. Palindrome Linked List
Given the head of a singly linked list, return true if it is a palindrome.
palindromeは回文を意味する.
考えたこと
回文判定をしていけば良いので,回帰で連結リストをたぐっていき,中の値をリストに入れていく.最後にそのリストを逆さまにしても同じ結果が出るかを確かめれば良いと考えた.
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution:
def isPalindrome(self, head: Optional[ListNode]) -> bool:
anslist = []
def stack(head):
if head:
anslist.append(head.val)
stack(head.next)
else:
return
stack(head)
return anslist==anslist[::-1]