본문 바로가기
코딩문제

[Leetcode] 237. Delete Node in a Linked List

by 컴돌이_예준 2022. 3. 20.

[문제]

Write a function to delete a node in a singly-linked list. You will not be given access to the head of the list, instead you will be given access to the node to be deleted directly.

It is guaranteed that the node to be deleted is not a tail node in the list.

[생각]

알고 보면 정말 간단한 문제였는데 순간 뇌정지가 왔네요 ㅋㅋ 

이전 node의 정보를 알 수 없는데 이걸 삭제하라고...?

Linked List 특성상 다음 node의 정보는 접근 가능하나, 이전 node의 접근은 불가능 합니다.

어떻게 하는거야,, 고민하다가 이전 node의 정보가 필요없음을 깨달았네요 ㅋㅋ

 

현재 node의 value를 연결된 다음 node의 value로 설정하고

현재 node의 다음 주소값을 다음 node의 다음 주소값으로 설정하면 끝나는 거였네요,,

 

한줄평: 쉽게쉽게 가자.

[풀이]

# 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

 

[문제]

https://leetcode.com/problems/delete-node-in-a-linked-list/