-
Notifications
You must be signed in to change notification settings - Fork 125
/
Copy pathjdy8739.js
48 lines (39 loc) ยท 1.24 KB
/
jdy8739.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
/**
* Definition for a binary tree node.
* function TreeNode(val, left, right) {
* this.val = (val===undefined ? 0 : val)
* this.left = (left===undefined ? null : left)
* this.right = (right===undefined ? null : right)
* }
*/
/**
* @param {TreeNode} p
* @param {TreeNode} q
* @return {boolean}
*/
var isSameTree = function(p, q) {
const dfs = (a, b) => {
const isValSame = a?.val === b?.val;
const isLeftValSame = a?.left?.val === b?.left?.val;
const isRightValSame = a?.right?.val === b?.right?.val;
if (!isValSame || !isLeftValSame || !isRightValSame) {
return true;
}
if (a?.left && b?.left) {
const isLeftDiff = dfs(a.left, b.left);
if (isLeftDiff) {
return true;
}
}
W
if (a?.right && b?.right) {
const isRightDiff = dfs(a.right, b.right);
if (isRightDiff) {
return true;
}
}
}
return !dfs(p, q);
};
// ์๊ฐ๋ณต์ก๋ - O(n) p์ q๊ฐ ๊ฐ๋ค๋ฉด ๋ชจ๋ ๋
ธ๋๋ฅผ ๋ฐฉ๋ฌธํ๋ฏ๋ก
// ๊ณต๊ฐ๋ณต์ก๋ - O(h) ๊น์ด์ฐ์ ํ์์ ์ฌ์ฉํ์ฌ ํธ๋ฆฌ์ ์ต๋ ๋์ด๋งํผ ์คํํ๊ฒฝ์ด ํจ์ํธ์ถ์คํ์ ์ ์ฅ๋๋ฏ๋ก