From 52e77d9029042a4898287293f93cf468211f8351 Mon Sep 17 00:00:00 2001 From: juhui Date: Fri, 20 Feb 2026 15:17:53 +0900 Subject: [PATCH] Week15 solutions --- subtree-of-another-tree/juhui-jeong.java | 28 ++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 subtree-of-another-tree/juhui-jeong.java diff --git a/subtree-of-another-tree/juhui-jeong.java b/subtree-of-another-tree/juhui-jeong.java new file mode 100644 index 0000000000..a2757b1324 --- /dev/null +++ b/subtree-of-another-tree/juhui-jeong.java @@ -0,0 +1,28 @@ +class Solution { + public boolean isSubtree(TreeNode root, TreeNode subRoot) { + if(subRoot == null) return true; + if(root == null) return false; + + Queue queue = new LinkedList(); + queue.offer(root); + + while(!queue.isEmpty()) { + TreeNode cur = queue.poll(); + + if (cur.val == subRoot.val && isSame(cur, subRoot)) { + return true; + } + + if (cur.left != null) queue.offer(cur.left); + if (cur.right != null) queue.offer(cur.right); + } + return false; + } + + private boolean isSame(TreeNode a, TreeNode b) { + if (a == null && b == null) return true; + if (a == null || b == null) return false; + if (a.val != b.val) return false; + return isSame(a.left, b.left) && isSame(a.right, b.right); + } +}