문제
Singly-Linked-List(SLL) 의 일부 Node 가 주어졌을때, 해당 node
만 삭제하고 나머지 구조는 유지할 것
- 즉,
node
전의 SLL 구조는 그대로 node
후의 SLL 구조도 그대로인 상태로 서로를 연결
제한조건
node
의 모든 값들은 고유값임- 삭제할
node
는 tail이 아님 -1000 <= Node.val <= 1000
- SLL의 크기는
[2, 1000]
아이디어
- 현재 노드의
val
을 다음 노드의val
로 덮어쓰기한다 - 현재 노드의
next
를 다음다음(next.next)으로 지정한다
정답
# 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
의 값을 덮어쓰고, Pointer를 Next.next로 해주면 되는 문제였다.