File tree Expand file tree Collapse file tree 1 file changed +28
-0
lines changed Expand file tree Collapse file tree 1 file changed +28
-0
lines changed Original file line number Diff line number Diff line change
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
+ }
You can’t perform that action at this time.
0 commit comments