알고리즘
[LeetCode] 234. Palindrome Linked List
유병각
2022. 4. 24. 00:30
[LeetCode] 234. Palindrome Linked List
풀이_#1
공간복잡도 O(1), 시간복잡도 O(N) 의 풀이
# Definition for singly-linked list.
# class ListNode(object):
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution(object):
def isPalindrome(self, head):
"""
:type head: ListNode
:rtype: bool
"""
slow, fast = head, head
rev = None
before = None
while(fast and fast.next):
fast = fast.next.next
rev = slow
slow = slow.next
rev.next = before
before = rev
if (fast):
type = "odd"
else:
type = "even"
if (type == "odd"):
slow = slow.next
while (slow and rev):
print(slow.val, rev.val)
if (slow.val != rev.val):
return False
slow = slow.next
rev = rev.next
return True