알고리즘
[leetcode/python] 234번 Palindrome Linked List
grin-quokka
2023. 4. 13. 12:35
https://leetcode.com/problems/palindrome-linked-list/
문제 요약 : 연결 리스트가 패린드롬(앞뒤로 읽어도 같은 값)인지 검증해라
로직은 다음과 같다.
1. 연결 리스트를 돌면서, 현재 값을 origin에 쭉 저장하고, 순서를 반대로 해서 reverse에 저장한다.
2. 두개가 같은지 비교해서 리턴한다.
# 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:
origin = ''
reverse = ''
node = head
while node:
origin = origin + str(node.val)
reverse = str(node.val) + reverse
node = node.next
return origin == reverse
시간복잡도는 O(n)이다