File tree Expand file tree Collapse file tree 1 file changed +41
-0
lines changed Expand file tree Collapse file tree 1 file changed +41
-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
+ // TC: O(n)
13
+ // SC: O(n)
14
+ function isSameTree ( p : TreeNode | null , q : TreeNode | null ) : boolean {
15
+ if ( ! p && ! q ) return true ;
16
+ if ( ! p || ! q ) return false ;
17
+
18
+ if ( p . val !== q . val ) return false ;
19
+
20
+ return isSameTree ( p . left , q . left ) && isSameTree ( p . right , q . right ) ;
21
+ }
22
+
23
+
24
+ // TC: O(n)
25
+ // SC: O(n)
26
+ // function isSameTree(p: TreeNode | null, q: TreeNode | null): boolean {
27
+ // const stack: (TreeNode | null)[][] = [[p, q]];
28
+
29
+ // while (stack.length > 0) {
30
+ // const [node1, node2] = stack.pop();
31
+
32
+ // if (!node1 && !node2) continue;
33
+ // if (!node1 || !node2) return false;
34
+ // if (node1.val !== node2.val) return false;
35
+
36
+ // stack.push([node1.left, node2.left]);
37
+ // stack.push([node1.right, node2.right]);
38
+ // }
39
+
40
+ // return true;
41
+ // }
You can’t perform that action at this time.
0 commit comments