본문 바로가기
Leetcode

237. Delete Node in a Linked List

by Doromi 2024. 5. 1.
728x90
반응형

주어진 노드를 연결 리스트에서 제거하는 문제입니다.

이 문제는 연결 리스트의 헤드에 대한 접근 권한이 없으며, 대신 제거할 노드에 대한 접근 권한만 주어집니다.

모든 연결 리스트의 값은 고유하며, 주어진 노드는 연결 리스트의 마지막 노드가 아님이 보장됩니다.

예를 들어:

예제 1: 입력으로 head = [4,5,1,9], node = 5가 주어지면, 출력은 [4,1,9]가 됩니다. 여기서 두 번째 노드인 값이 5인 노드가 제거되어야 합니다.


예제 2: 입력으로 head = [4,5,1,9], node = 1이 주어지면, 출력은 [4,5,9]가 됩니다. 여기서 세 번째 노드인 값이 1인 노드가 제거되어야 합니다.


제약 조건은 다음과 같습니다:

주어진 리스트의 노드 수는 범위 [2, 1000] 내에 있습니다.
-1000 <= Node.val <= 1000
리스트의 각 노드의 값은 고유합니다.
제거할 노드는 리스트에 있으며, tail 노드가 아닙니다.


이 문제를 해결하기 위해서는 주어진 노드의 val과 next 포인터를 다음 노드의 val과 next 포인터로 각각 변경해야 합니다. 그런 다음, 주어진 노드의 next 포인터를 다음 노드의 next 포인터로 변경하여 주어진 노드를 건너뛰게 합니다. 이렇게 하면 주어진 노드가 연결 리스트에서 제거됩니다.

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     public int val;
 *     public ListNode next;
 *     public ListNode(int x) { val = x; }
 * }
 */
public class Solution {
    public void DeleteNode(ListNode node) {
        node.val = node.next.val;
        node.next = node.next.next;
    }
}

다음 노드의 value 로 업데이트 해준 다음, 다음 노드를 삭제하는 방식입니다.

728x90
반응형

'Leetcode' 카테고리의 다른 글

67. Add Binary  (0) 2024.05.03
28. Find the Index of the First Occurrence in a String  (0) 2024.05.02
203. Remove Linked List Elements  (0) 2024.05.01
20. Valid Parentheses  (0) 2024.04.29
21. Merge Two Sorted Lists  (0) 2024.04.23