https://leetcode.com/problems/palindrome-linked-list/
Palindrome Linked List - LeetCode
Can you solve this real interview question? Palindrome Linked List - Given the head of a singly linked list, return true if it is a palindrome or false otherwise. Example 1: [https://assets.leetcode.com/uploads/2021/03/03/pal1linked-list.jpg] Input: hea
leetcode.com
문제 : 연결리스트가 팰린드롬 구조인지 판별하라.
입력 : 1 ->2 ->2->1
출력 : True
팰린드롬 구조란?
eye, hannah처럼 거꾸로 읽어도 똑같은 문장이나 단어... 이효리,, 리효리....
1. 리스트로 변환해서 값을 pop해 확인한다.
#파이썬 기본 연결리스트 구조
class Node():
def __init(self,data):
self.data= data
self.next = None
class Solution(object):
def isPalindrome(self, head):
result =[]
current = head
while current.next is not None:
result.append(current.data)
current = current.next
while len(result) >0:
if result.pop() == result.pop(-1):
continue
else :
return False
return True
코드 분석
나의 경우 current.next 가 None이 아닌 경우까지 반복문을 돌아주고 list에 append해주고, 마지막값을 따로 append해주었는데 그냥 current is not None으로 해주면 굳이 두번 해주지 않고 깔끔하게 해줄 수 있다.
while len(result) >0:
if result.pop() == result.pop(-1):
continue
else :
return False
return True
리스트 내부에서 확인
'코딩 > leetcode' 카테고리의 다른 글
[leetcode]206 연결리스트 뒤집기 (1) | 2023.07.16 |
---|---|
[leetcode]21 두 연결리스트의 병합 (0) | 2023.07.16 |
[leetcode]238 자신을 제외한 배열의 곱 (0) | 2023.07.14 |
leetcode 42 , 빗물 트래킹 (0) | 2023.07.11 |
[leetcode 104] 이진 트리의 최대 깊이 (0) | 2022.10.10 |