문제
LeetCode 19. Remove Nth Node From End of List
https://leetcode.com/problems/remove-nth-node-from-end-of-list/
언어
자바스크립트(JavaScript)
접근 방법
- 모든 node의 값을 저장한다.
- 저장한 값을 이용하여 다시 ListNode를 만드는데, 특정 요소는 제외한다.
코드
/**
* Definition for singly-linked list.
* function ListNode(val, next) {
* this.val = (val===undefined ? 0 : val)
* this.next = (next===undefined ? null : next)
* }
*/
/**
* @param {ListNode} head
* @param {number} n
* @return {ListNode}
*/
var removeNthFromEnd = function(head, n) {
// 요소 저장
let numList = [];
let node = head;
while(node){
numList.push(node.val);
node = node.next;
}
// 저장된 요소로 새로운 ListNode 만들기
let result = null;
let cnt = 1;
while(numList.length){
let val = numList.pop();
if(cnt !== n){
result = new ListNode(val, result);
}
cnt++;
}
return result;
};
결과
Runtime: 80 ms, faster than 81.71% of JavaScript online submissions for Remove Nth Node From End of List.
Memory Usage: 40.3 MB, less than 41.07% of JavaScript online submissions for Remove Nth Node From End of List.
복기
- 어렵지 않게 풀 수 있었다.
- 이전에 NodeList 값 탐색하고, NodeList를 만들어본 코드를 짠 적이 있었기 때문에 쉬웠다. 처음이라면 어렵다.
'개발 공부 > 알고리즘 문제 풀이' 카테고리의 다른 글
[LeetCode] 48. Rotate Image (0) | 2021.06.28 |
---|---|
[LeetCode] 22. Generate Parentheses (0) | 2021.06.24 |
[LeetCode] 17. Letter Combinations of a Phone Number (0) | 2021.06.24 |
[LeetCode] 15. 3Sum (0) | 2021.06.24 |
[LeetCode] 92. Reverse Linked List II (0) | 2021.06.24 |