Skip to content

Commit 3d9c7d8

Browse files
committed
Solution: Remove Nth Node from End of List
1 parent a81e84f commit 3d9c7d8

File tree

1 file changed

+34
-0
lines changed
  • remove-nth-node-from-end-of-list

1 file changed

+34
-0
lines changed
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
/*
2+
ํ’€์ด
3+
- n+1 ๊ฐ„๊ฒฉ์„ ์œ ์ง€ํ•˜๋ฉฐ ์ด๋™ํ•˜๋Š” ๋‘ ๊ฐœ์˜ ํฌ์ธํ„ฐ๋ฅผ ์ด์šฉํ•˜๋ฉด one-pass๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
4+
Big O
5+
- M: ๋งํฌ๋“œ๋ฆฌ์ŠคํŠธ์˜ ๊ธธ์ด
6+
- Time complexity: O(M)
7+
- Space complexity: O(1)
8+
*/
9+
10+
/**
11+
* Definition for singly-linked list.
12+
* type ListNode struct {
13+
* Val int
14+
* Next *ListNode
15+
* }
16+
*/
17+
18+
func removeNthFromEnd(head *ListNode, n int) *ListNode {
19+
dummy := &ListNode{Next: head}
20+
21+
slow := dummy
22+
fast := dummy
23+
for i := 0; i < n+1; i++ {
24+
fast = fast.Next
25+
}
26+
27+
for fast != nil {
28+
slow = slow.Next
29+
fast = fast.Next
30+
}
31+
slow.Next = slow.Next.Next
32+
33+
return dummy.Next
34+
}

0 commit comments

Comments
ย (0)