문제

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

#python#linkedlist