-
리트코드(LeetCode)의 연결리스트 코딩을 에디터에서 해보자(How to use linked list in editor)
리트코드 컴파일러 내부에서는 연결리스트 처리하는 함수들이 있다.
디버깅을 위해 에디터를 사용하려는데 에디터에서는 위 함수가 없으므로 직접 코딩하였다.
다음 구문들을 추가하면된다.
우선 리트코드에서 주석처리가 되어있는 코드를 붙이고
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
이 클래스는 단순히 연결리스트에 쓰이는 노드에 관한 정의이다.
노드를 만들고 노드끼리 이어주는 코드
def makeNode(lst):
res = ptr = ListNode()
for item in lst:
ptr.next = ListNode(item)
ptr = ptr.next
return res.next
위 함수를 이용하여 메인 함수에 파라미터로 넣어준다.
Solution().mainfunction(head = makeNode([1,2,1])
예를 들어
팰린드롬 연결 리스트 를 코딩한다했을때.
전체 코드는
from typing import Optional, List
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def makeNode(lst):
res = ptr = ListNode()
for item in lst:
ptr.next = ListNode(item)
ptr = ptr.next
return res.next
class Solution:
def isPalindrome(self, head: Optional[ListNode]) -> bool:
node_list : List = []
if not head:
return True
node = head
while node is not None:
node_list.append(node.val)
node = node.next
while len(node_list) > 1:
if node_list.pop(0) != node_list.pop():
return False
return True
print(Solution().isPalindrome(head = makeNode([1,2 ])))
끝
Advanced
👉 파이썬에서 OR과 AND
2021.11.01
👉 zip과 행렬의 덧셈
2021.07.11
👉 N진법 변환
2021.07.01
👉 CodingInterview에서의 Python
2021.06.21
👉 IntelliJ에서 파이썬 연결리스트 사용하기
2021.06.11
👉 Python에서의 불변객체와 가변객체
2021.06.10
👉 Python에서 N차원 배열을 1차원 배열로 만들기
2021.06.10
👉 코딩테스트 파이썬 Tip
2021.04.20
Level1
👉 124 나라의 숫자 파이썬
2022.04.17
👉 신규 아이디 추천
2021.10.19
👉 두 개의 연결 리스트 병합하여 나열
2021.06.12
👉 IntelliJ에서 파이썬 연결리스트 사용하기
2021.06.11
CodingTest
👉 124 나라의 숫자 파이썬
2022.04.17
👉 핸드폰 번호 가리기
2021.10.20
👉 신규 아이디 추천
2021.10.19
👉 소수 만들기
2021.10.14
👉 zip과 행렬의 덧셈
2021.07.11
👉 자신을 제외한 배열의 곱
2021.06.13
👉 두 개의 연결 리스트 병합하여 나열
2021.06.12
👉 IntelliJ에서 파이썬 연결리스트 사용하기
2021.06.11
댓글 쓰기