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