Skip to content

Commit 52e77d9

Browse files
committed
Week15 solutions
1 parent 58283f9 commit 52e77d9

1 file changed

Lines changed: 28 additions & 0 deletions

File tree

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
class Solution {
2+
public boolean isSubtree(TreeNode root, TreeNode subRoot) {
3+
if(subRoot == null) return true;
4+
if(root == null) return false;
5+
6+
Queue<TreeNode> queue = new LinkedList();
7+
queue.offer(root);
8+
9+
while(!queue.isEmpty()) {
10+
TreeNode cur = queue.poll();
11+
12+
if (cur.val == subRoot.val && isSame(cur, subRoot)) {
13+
return true;
14+
}
15+
16+
if (cur.left != null) queue.offer(cur.left);
17+
if (cur.right != null) queue.offer(cur.right);
18+
}
19+
return false;
20+
}
21+
22+
private boolean isSame(TreeNode a, TreeNode b) {
23+
if (a == null && b == null) return true;
24+
if (a == null || b == null) return false;
25+
if (a.val != b.val) return false;
26+
return isSame(a.left, b.left) && isSame(a.right, b.right);
27+
}
28+
}

0 commit comments

Comments
 (0)