문제
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로 해주면 되는 문제였다.