Logical OR of Two Binary Grids Represented as Quad-Trees LeetCode solution in JavaScript

1
var intersect = function (quadTree1, quadTree2) {
2
if (!quadTree1.isLeaf && !quadTree2.isLeaf) {
3
const tl = intersect(quadTree1.topLeft, quadTree2.topLeft);
4
const tr = intersect(quadTree1.topRight, quadTree2.topRight);
5
const bl = intersect(quadTree1.bottomLeft, quadTree2.bottomLeft);
6
const br = intersect(quadTree1.bottomRight, quadTree2.bottomRight);
7
if (
8
tl.isLeaf &&
9
tr.isLeaf &&
10
bl.isLeaf &&
11
br.isLeaf &&
12
tl.val === tr.val &&
13
tr.val === bl.val &&
14
bl.val === br.val
15
) {
16
return tl;
17
} else {
18
return new Node(true, false, tl, tr, bl, br);
19
}
20
} else if (
21
(quadTree2.isLeaf && quadTree2.val) ||
22
(quadTree1.isLeaf && !quadTree1.val)
23
) {
24
return quadTree2;
25
} else if (
26
(quadTree1.isLeaf && quadTree1.val) ||
27
(quadTree2.isLeaf && !quadTree2.val)
28
) {
29
return quadTree1;
30
}
31
throw new Error("it's not possible");
32
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0