Skip to content

Commit ade1ec0

Browse files
authored
solution on subtree-of-another-tree
1 parent a0c2edd commit ade1ec0

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
// Runtime: 8ms
2+
// Memory: 63.23MB
3+
4+
/**
5+
* Definition for a binary tree node.
6+
* class TreeNode {
7+
* val: number
8+
* left: TreeNode | null
9+
* right: TreeNode | null
10+
* constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) {
11+
* this.val = (val===undefined ? 0 : val)
12+
* this.left = (left===undefined ? null : left)
13+
* this.right = (right===undefined ? null : right)
14+
* }
15+
* }
16+
*/
17+
18+
const isSameTree = (p, q): boolean => {
19+
if (!(p && q)) return p === q
20+
if (p.val !== q.val) return false
21+
return isSameTree(p.left, q.left) && isSameTree(p.right, q.right)
22+
}
23+
24+
function isSubtree(root: TreeNode | null, subRoot: TreeNode | null): boolean {
25+
if (!subRoot) return true
26+
if (!root) return false
27+
if (isSameTree(root, subRoot)) return true
28+
return isSubtree(root.left, subRoot) || isSubtree(root.right, subRoot)
29+
};

0 commit comments

Comments
 (0)