Problem
단일 연결 목록 헤드가 있고 그 안의 노드를 삭제하려고 한다.
삭제할 노드가 제공된다. 헤드의 첫 번째 노드에 대한 액세스 권한이 부여되지 않는다.
연결 목록의 모든 값은 고유하며 주어진 노드가 연결 목록의 마지막 노드가 아님이 보장된다.
주어진 노드를 삭제한다. 노드를 삭제한다고 해서 메모리에서 제거하는 것은 아니다.
- 주어진 노드의 값은 연결 리스트에 존재하지 않아야 한다.
- 연결 목록의 노드 수는 1씩 감소해야 한다.
- 이전의 모든 값 node은 같은 순서로 되어 있어야 한다.
- 이후의 모든 값 node은 같은 순서여야 한다.
- 입력의 경우 전체 연결 목록 head과 제공할 노드를 제공해야 한다. 목록의 마지막 노드가 아니어야 하며 목록의 실제 노드여야 한다.
- 연결 목록을 만들고 노드를 함수에 전달할 것이다.
- 출력은 함수를 호출한 후 전체 목록이 된다.
Example
Input: head = [4,5,1,9], node = 5
Output: [4,1,9]
Explanation: 값이 5인 두 번째 노드가 주어지면 연결 목록은 함수를 호출한 후 4 -> 1 -> 9가 되어야 한다.
Input: head = [4,5,1,9], node = 1
Output: [4,5,9]
Explanation: 값이 1인 세 번째 노드가 주어지고 연결 목록은 함수를 호출한 후 4 -> 5 -> 9가 되어야 한다.
Constraints
- 주어진 목록의 노드 수가 [2, 1000] 범위 내에 있다.
- -1000 <= Node.val <= 1000
- 목록에 있는 각 노드의 값은 고유 하다.
- 삭제할 node 항목은 목록 에 있으며 꼬리 노드 가 아니다.
Solution
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
'algorithms' 카테고리의 다른 글
[Leetcode] 976. Largest Perimeter Triangle (0) | 2022.10.12 |
---|---|
[Leetcode] 334. Increasing Triplet Subsequence (0) | 2022.10.11 |