File tree Expand file tree Collapse file tree 1 file changed +29
-0
lines changed Expand file tree Collapse file tree 1 file changed +29
-0
lines changed Original file line number Diff line number Diff line change 1+ /**
2+ * https://leetcode.com/problems/subtree-of-another-tree/
3+ * time complexity : O(n * m)
4+ * space complexity : O(n)
5+ */
6+
7+ class TreeNode {
8+ val : number ;
9+ left : TreeNode | null ;
10+ right : TreeNode | null ;
11+ constructor ( val ?: number , left ?: TreeNode | null , right ?: TreeNode | null ) {
12+ this . val = val ?? 0 ;
13+ this . left = left ?? null ;
14+ this . right = right ?? null ;
15+ }
16+ }
17+
18+ function isSameTree ( p : TreeNode | null , q : TreeNode | null ) : boolean {
19+ if ( ! p && ! q ) return true ;
20+ if ( ! p || ! q || p . val !== q . val ) return false ;
21+
22+ return isSameTree ( p . left , q . left ) && isSameTree ( p . right , q . right ) ;
23+ }
24+
25+ function isSubtree ( root : TreeNode | null , subRoot : TreeNode | null ) : boolean {
26+ if ( ! root ) return false ;
27+ if ( isSameTree ( root , subRoot ) ) return true ;
28+ return isSubtree ( root . left , subRoot ) || isSubtree ( root . right , subRoot ) ;
29+ }
You can’t perform that action at this time.
0 commit comments