Skip to content

Commit 9eb911e

Browse files
committed
2. Remove Nth Node From End of List
1 parent bf8d1ff commit 9eb911e

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed
+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
/**
2+
* @description
3+
* 전체 노드의 길이를 구한 뒤 n에 적합한 노드만 건너뛰어 노드를 재배열 시켜줌
4+
*
5+
* n = total length of head node list
6+
* time complexity: O(n)
7+
* space complexity: O(n)
8+
*/
9+
var removeNthFromEnd = function (head, n) {
10+
let node;
11+
let nodeCount = 0;
12+
13+
node = head;
14+
while (node) {
15+
nodeCount++;
16+
node = node.next;
17+
}
18+
19+
let answer = new ListNode();
20+
let answerNode = answer;
21+
22+
node = head;
23+
for (let i = 0; i < nodeCount; i++) {
24+
if (nodeCount - n === i) {
25+
i++;
26+
node = node.next;
27+
}
28+
29+
answerNode.next = node;
30+
answerNode = node;
31+
32+
node = node?.next ?? null;
33+
}
34+
35+
return answer.next;
36+
};

0 commit comments

Comments
 (0)