Skip to content

Commit 5d48199

Browse files
Jeehay28Jeehay28
authored andcommitted
Add same-tree solution in TS
1 parent 42e321e commit 5d48199

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

same-tree/Jeehay28.ts

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
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+
// }

0 commit comments

Comments
 (0)