뒤에서 n번째 노드 삭제하기.
우선 리스트 길이를 구한 후 삭제할 노드의 인덱스에 다다르면 삭제하는 방법으로 풀었다.
/**
* 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) {
var curr = head;
var prev, index = 0;
// ListNode의 길이 구하기
var list = head;
var len = 1;
while(list.next){
len++;
list = list.next;
}
if(n == len) {
head = curr.next;
} else {
while(index++ < len - n){
prev = curr;
curr = prev.next;
console.log(prev, curr)
}
prev.next = curr.next;
console.log('result', prev, curr, head)
}
curr.next = undefined;
return head;
};
leetcode.com/explore/interview/card/top-interview-questions-easy/93/linked-list/603/
'Web development > Algorithm' 카테고리의 다른 글
[LeetCode] Merge Two Sorted Lists (javascript) (0) | 2021.02.26 |
---|---|
[LeetCode] Reverse Linked List (javascript) (0) | 2021.02.26 |
[LeetCode] Delete Node in a Linked List (javascript) (0) | 2021.02.26 |
[LeetCode] Longest Common Prefix (javascript) (0) | 2021.02.26 |
Binary Tree (0) | 2021.02.22 |
댓글