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)가 걸린다.