[LEETCODE] 237: Delete Node in a Linked List(Python)

박나현·2024년 4월 9일

Delete Node in a Linked List - LeetCode

문제 설명

단방향 링크드 리스트가 주어질 때, 주어진 노드를 제거해보자.

나의 풀이

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution:
    def deleteNode(self, node):
        """
        :type node: ListNode
        :rtype: void Do not return anything, modify node in-place instead.
        """
        node.val=node.next.val
        node.next=node.next.next

처음에 주어지는 연결 리스트를 이해하지 못해서 헷갈렸다… 출력해보니까 node가 포함된 연결 리스트가 주어진다기보다 node만 주어지는데, 이 node의 next 안에 다음 노드가 존재하는 식의 구조였다.

즉 연결 리스트가 [4,5,1,9]이고 node가 5일 때, 전체 연결 리스트가 주어지는 것이 아니라 node 부터의 정보가 주어진다.

ListNode{val: 5, next: ListNode{val: 1, next: ListNode{val: 9, next: None}}}

시간복잡도

단순히 node의 val, next 필드만 업데이트하므로 O(2)가 걸린다.

profile
의견을 가지고 학습하기, 질문하기, 궁금했던 주제에 대해 학습하는 것을 미루지 않기

0개의 댓글