(Leet Code c++)Delete Node in a Linked List

(Leet Code c++)Delete Node in a Linked List

728x90

반응형

237. Delete Node in a Linked List

Write a function to delete a node in a singly-linked list. You will not be given access to the head of the list, instead you will be given access to the node to be deleted directly.

It is guaranteed that the node to be deleted is not a tail node in the list.

Example 1:

Input: head = [4,5,1,9], node = 5 Output: [4,1,9] Explanation: You are given the second node with value 5, the linked list should become 4 -> 1 -> 9 after calling your function.

Example 2:

Input: head = [4,5,1,9], node = 1 Output: [4,5,9] Explanation: You are given the third node with value 1, the linked list should become 4 -> 5 -> 9 after calling your function.

Example 3:

Input: head = [1,2,3,4], node = 3 Output: [1,2,4]

Example 4:

Input: head = [0,1], node = 0 Output: [1]

Example 5:

Input: head = [-3,5,-99], node = -3 Output: [5,-99]

Constraints:

The number of the nodes in the given list is in the range [2, 1000].

[2, 1000]. -1000 <= Node.val <= 1000

The value of each node in the list is unique .

. The node to be deleted is in the list and is not a tail node

728x90

연결 리스트의 head가 주어지지 않고, 지우려고 하는 노드의 정보만 주어진다.

그렇기 때문에 이전 노드의 next를 현재 노드의 다음 노드로 이을 방법이 없다.

하지만 현재 노드의 다음 노드를 현재 노드로 바꾼다면 가능하다.

/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: void deleteNode(ListNode* node) { node->val = node->next->val; node->next = node->next->next; } };

728x90

반응형

from http://eunchanee.tistory.com/516 by ccl(A) rewrite - 2021-07-28 10:00:18