From bf87de49530d05eb63e92481e8db5181fbcf5416 Mon Sep 17 00:00:00 2001 From: jeongdalma Date: Sat, 23 Nov 2024 19:06:09 +0900 Subject: [PATCH 1/2] =?UTF-8?q?15=EC=A3=BC=EC=B0=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- subtree-of-another-tree/jdalma.kt | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 subtree-of-another-tree/jdalma.kt diff --git a/subtree-of-another-tree/jdalma.kt b/subtree-of-another-tree/jdalma.kt new file mode 100644 index 000000000..049f8b040 --- /dev/null +++ b/subtree-of-another-tree/jdalma.kt @@ -0,0 +1,28 @@ +package leetcode_study + +import io.kotest.matchers.shouldBe +import org.junit.jupiter.api.Test + +class `subtree-of-another-tree` { + + fun isSubtree(root: TreeNode?, subRoot: TreeNode?): Boolean { + if (root == null) return false + else if (isSame(root, subRoot)) return true + + return isSubtree(root.left, subRoot) || isSubtree(root.right, subRoot) + } + + private fun isSame(root: TreeNode?, subRoot: TreeNode?): Boolean { + if (root == null && subRoot == null) return true + else if (root == null || subRoot == null) return false + else if (root.`val` != subRoot.`val`) return false + + return isSame(root.left, subRoot.left) && isSame(root.right, subRoot.right) + } + + @Test + fun `subRoot를 포함한다면 참을 반환한다`() { + isSubtree(TreeNode.of(3,4,5,1,2,null,null,null,0), TreeNode.of(4,1,2)) shouldBe false + isSubtree(TreeNode.of(3,4,5,1,2,null,null,null), TreeNode.of(4,1,2)) shouldBe true + } +} From 3803716931abbf6b6c44784b66fb7786171663ea Mon Sep 17 00:00:00 2001 From: Hyunjun Jeong Date: Sun, 24 Nov 2024 09:55:39 +0900 Subject: [PATCH 2/2] Update subtree-of-another-tree/jdalma.kt Co-authored-by: Dale Seo <5466341+DaleSeo@users.noreply.github.com> --- subtree-of-another-tree/jdalma.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/subtree-of-another-tree/jdalma.kt b/subtree-of-another-tree/jdalma.kt index 049f8b040..a3fd02a7e 100644 --- a/subtree-of-another-tree/jdalma.kt +++ b/subtree-of-another-tree/jdalma.kt @@ -14,8 +14,8 @@ class `subtree-of-another-tree` { private fun isSame(root: TreeNode?, subRoot: TreeNode?): Boolean { if (root == null && subRoot == null) return true - else if (root == null || subRoot == null) return false - else if (root.`val` != subRoot.`val`) return false + if (root == null || subRoot == null) return false + if (root.`val` != subRoot.`val`) return false return isSame(root.left, subRoot.left) && isSame(root.right, subRoot.right) }