N
(Leet Code c++)Delete Node in a Linked List 본문
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].
- -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
연결 리스트의 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;
}
};
'Leet Code 알고리즘' 카테고리의 다른 글
(Leet Code c++)Binary Tree Paths (0) | 2021.07.29 |
---|---|
(Leet Code c++)Valid Anagram (0) | 2021.07.28 |
(Leet Code c++)Lowest Common Ancestor of a Binary Search Tree (0) | 2021.07.28 |
(Leet Code c++)Letter Combinations of a Phone Number (0) | 2021.07.27 |
(Leet Code c++)Palindrome Linked List (0) | 2021.07.27 |