From cf2a77d44d1499c282055d302847438f4648ba8d Mon Sep 17 00:00:00 2001 From: Valentyn Kolesnikov Date: Fri, 11 Oct 2024 09:13:54 +0300 Subject: [PATCH 1/2] Improved task 572 --- .../Solution.java | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/main/java/g0501_0600/s0572_subtree_of_another_tree/Solution.java b/src/main/java/g0501_0600/s0572_subtree_of_another_tree/Solution.java index 87f0edac7..02194a134 100644 --- a/src/main/java/g0501_0600/s0572_subtree_of_another_tree/Solution.java +++ b/src/main/java/g0501_0600/s0572_subtree_of_another_tree/Solution.java @@ -2,7 +2,7 @@ // #Easy #Depth_First_Search #Tree #Binary_Tree #Hash_Function #String_Matching // #Algorithm_II_Day_7_Breadth_First_Search_Depth_First_Search -// #2022_08_10_Time_1_ms_(100.00%)_Space_47.2_MB_(13.44%) +// #2024_10_11_Time_2_ms_(97.06%)_Space_44.2_MB_(68.85%) import com_github_leetcode.TreeNode; @@ -22,29 +22,29 @@ * } */ public class Solution { - private boolean isSubtreeFound(TreeNode root, TreeNode subRoot) { - if (root == null && subRoot == null) { + public boolean isSubtree(TreeNode root, TreeNode subRoot) { + if (root == null) { + return false; + } + if (traverse(root, subRoot)) { return true; } - if (root == null || subRoot == null) { + return isSubtree(root.left, subRoot) || isSubtree(root.right, subRoot); + } + + private boolean traverse(TreeNode root, TreeNode subRoot) { + if (root == null && subRoot != null) { return false; } - if (root.val == subRoot.val) { - return isSubtreeFound(root.left, subRoot.left) && isSubtree(root.right, subRoot.right); - } else { + if (root != null && subRoot == null) { return false; } - } - - public boolean isSubtree(TreeNode root, TreeNode subRoot) { if (root == null && subRoot == null) { return true; } - if (root == null || subRoot == null) { + if (root.val != subRoot.val) { return false; } - return isSubtreeFound(root, subRoot) - || isSubtree(root.left, subRoot) - || isSubtree(root.right, subRoot); + return traverse(root.left, subRoot.left) && traverse(root.right, subRoot.right); } } From 81117a1ba74eef891a0537ddd989a79be892e6fb Mon Sep 17 00:00:00 2001 From: Valentyn Kolesnikov Date: Fri, 11 Oct 2024 09:20:00 +0300 Subject: [PATCH 2/2] Fixed sonar --- .../java/g0501_0600/s0572_subtree_of_another_tree/Solution.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/g0501_0600/s0572_subtree_of_another_tree/Solution.java b/src/main/java/g0501_0600/s0572_subtree_of_another_tree/Solution.java index 02194a134..5493c77c1 100644 --- a/src/main/java/g0501_0600/s0572_subtree_of_another_tree/Solution.java +++ b/src/main/java/g0501_0600/s0572_subtree_of_another_tree/Solution.java @@ -39,7 +39,7 @@ private boolean traverse(TreeNode root, TreeNode subRoot) { if (root != null && subRoot == null) { return false; } - if (root == null && subRoot == null) { + if (root == null) { return true; } if (root.val != subRoot.val) {