Skip to content

Commit ea83b10

Browse files
committed
9주차
1 parent bfe247c commit ea83b10

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

linked-list-cycle/jdalma.kt

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package leetcode_study
2+
3+
import io.kotest.matchers.shouldBe
4+
import org.junit.jupiter.api.Test
5+
6+
class `linked-list-cycle` {
7+
8+
data class ListNode(var `val`: Int) {
9+
var next: ListNode? = null
10+
}
11+
12+
/**
13+
* TC: O(n), SC: O(1)
14+
*/
15+
fun hasCycle(head: ListNode?): Boolean {
16+
if (head == null) return false
17+
18+
var slow = head
19+
var fast = head
20+
21+
while (fast?.next != null) {
22+
slow = slow?.next
23+
fast = fast.next?.next
24+
25+
if (slow == fast) return true
26+
}
27+
28+
return false
29+
}
30+
31+
@Test
32+
fun `입력받은 노드에 사이클이 존재한다면 참을 반환한다`() {
33+
val three = ListNode(3)
34+
val two = ListNode(2)
35+
val zero = ListNode(0)
36+
val four = ListNode(4)
37+
38+
three.next = two
39+
two.next = zero
40+
zero.next = four
41+
four.next = two
42+
43+
hasCycle(three) shouldBe true
44+
}
45+
}

0 commit comments

Comments
 (0)