Skip to content

Commit 5558d9c

Browse files
committed
Feat: 572. Subtree of Another Tree
1 parent c2a2065 commit 5558d9c

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

subtree-of-another-tree/HC-kang.ts

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
// class TreeNode {
2+
// val: number;
3+
// left: TreeNode | null;
4+
// right: TreeNode | null;
5+
// constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) {
6+
// this.val = val === undefined ? 0 : val;
7+
// this.left = left === undefined ? null : left;
8+
// this.right = right === undefined ? null : right;
9+
// }
10+
// }
11+
12+
/**
13+
* https://leetcode.com/problems/subtree-of-another-tree
14+
* T.C. O(n * m)
15+
* S.C. O(n)
16+
*/
17+
function isSubtree(root: TreeNode | null, subRoot: TreeNode | null): boolean {
18+
if (!root) return false;
19+
if (isSameTree(root, subRoot)) return true;
20+
return isSubtree(root.left, subRoot) || isSubtree(root.right, subRoot);
21+
}
22+
23+
function isSameTree(p: TreeNode | null, q: TreeNode | null): boolean {
24+
if (!p && !q) return true;
25+
if (!p || !q) return false;
26+
if (p.val !== q.val) return false;
27+
return isSameTree(p.left, q.left) && isSameTree(p.right, q.right);
28+
}

0 commit comments

Comments
 (0)