728x90
leetcode.com/explore/featured/card/top-interview-questions-easy/93/linked-list/553
처음에는 그냥 다음걸로 바꿔주면 되는 거 아닌가 생각해서 하단 코드를 적었는데 결과가 다음노드로 넘어가는 게 아니라 현재노드의 바로 다음노드만 바뀌는 것을 확인했다.
class Solution {
public void deleteNode(ListNode node) {
node = node.next;
node.next = node.next.next;
}
}
Input : [4,5,1,9] 5
Output : [4,5,1]
Expected answer : [4,1,9]
생각을 해보니 단방향 Linked List 라서 주어진 node 이전의 노드 next는 바꿀수가 없다는 것을 알았다.
따라서, 4 -> 5를 가리키고 있는 것은 바꿀 수 없으므로
1️⃣ 내부 val 값을 바꿔주고
2️⃣ 현재 노드의 다음노드를 건너뛰고 그 다음노드로 설정했다.
class Solution {
public void deleteNode(ListNode node) {
node.val = node.next.val;
node.next = node.next.next;
}
}
728x90
'코딩테스트' 카테고리의 다른 글
[LeetCode] Palindrome Linked List (0) | 2021.05.06 |
---|---|
[LeetCode] 19. Remove Nth Node From End of List (0) | 2021.05.06 |
[LeetCode] Binary Tree Level Order Traversal (2) | 2021.05.03 |
[LeetCode] 101. Symmetric Tree (0) | 2021.04.29 |
[LeetCode] 98. Validate Binary Search Tree (0) | 2021.04.29 |