Skip to content

Commit 1b1b756

Browse files
authored
Merge pull request DaleStudy#611 from jdalma/main
[정현준] 15주차
2 parents 72e93b7 + 3803716 commit 1b1b756

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

subtree-of-another-tree/jdalma.kt

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package leetcode_study
2+
3+
import io.kotest.matchers.shouldBe
4+
import org.junit.jupiter.api.Test
5+
6+
class `subtree-of-another-tree` {
7+
8+
fun isSubtree(root: TreeNode?, subRoot: TreeNode?): Boolean {
9+
if (root == null) return false
10+
else if (isSame(root, subRoot)) return true
11+
12+
return isSubtree(root.left, subRoot) || isSubtree(root.right, subRoot)
13+
}
14+
15+
private fun isSame(root: TreeNode?, subRoot: TreeNode?): Boolean {
16+
if (root == null && subRoot == null) return true
17+
if (root == null || subRoot == null) return false
18+
if (root.`val` != subRoot.`val`) return false
19+
20+
return isSame(root.left, subRoot.left) && isSame(root.right, subRoot.right)
21+
}
22+
23+
@Test
24+
fun `subRoot를 포함한다면 참을 반환한다`() {
25+
isSubtree(TreeNode.of(3,4,5,1,2,null,null,null,0), TreeNode.of(4,1,2)) shouldBe false
26+
isSubtree(TreeNode.of(3,4,5,1,2,null,null,null), TreeNode.of(4,1,2)) shouldBe true
27+
}
28+
}

0 commit comments

Comments
 (0)