Skip to content

Commit adb63d6

Browse files
Update 0572-subtree-of-another-tree.java
Fixed the code structure and removed the ```if (root == null || subRoot == null) {return false;}``` condition which could cause a confusion as the problem requires an empty ```subRoot``` to be a valid sub-root of ```root```.
1 parent ebebd81 commit adb63d6

File tree

1 file changed

+9
-24
lines changed

1 file changed

+9
-24
lines changed

java/0572-subtree-of-another-tree.java

Lines changed: 9 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -2,38 +2,23 @@
22

33
// Time Complexity: O(n)
44
// Extra Space Complexity: O(n)
5-
class Solution1 {
6-
5+
class Solution {
76
public boolean isSubtree(TreeNode root, TreeNode subRoot) {
8-
if (root == null && subRoot == null) {
9-
return true;
10-
}
11-
if (root == null || subRoot == null) {
12-
return false;
13-
}
14-
if (isSameTree(root, subRoot)) {
15-
return true;
16-
}
7+
if (subRoot == null || isSameTree(root, subRoot)) return true;
8+
if (root == null) return false;
179

18-
return (
19-
isSubtree(root.left, subRoot) || isSubtree(root.right, subRoot)
20-
);
10+
return isSubtree(root.left, subRoot) || isSubtree(root.right, subRoot);
2111
}
2212

23-
private boolean isSameTree(TreeNode root, TreeNode subRoot) {
24-
if (root == null && subRoot == null) {
13+
private boolean isSameTree(TreeNode p, TreeNode q) {
14+
if (p == null && q == null) {
2515
return true;
2616
}
27-
if (root == null || subRoot == null) {
17+
18+
if (p == null || q == null || p.val != q.val) {
2819
return false;
2920
}
30-
if (root.val == subRoot.val) {
31-
return (
32-
isSameTree(root.left, subRoot.left) &&
33-
isSameTree(root.right, subRoot.right)
34-
);
35-
}
3621

37-
return false;
22+
return isSameTree(p.left, q.left) && isSameTree(p.right, q.right);
3823
}
3924
}

0 commit comments

Comments
 (0)