Diameter of Binary Tree LeetCode solution in JavaScript

1
function fastDiameter(node) {
2
if (node == null) {
3
let pair = new Array(2).fill(0);
4
pair[0] = 0;
5
pair[1] = 0;
6
return pair;
7
}
8

9
let leftPair = fastDiameter(node.left);
10
let rightPair = fastDiameter(node.right);
11

12
let leftDiameter = leftPair[0];
13
let rightDiameter = rightPair[0];
14

15
let height = leftPair[1] + rightPair[1] + 1;
16

17
let maxDiameter = Math.max(leftDiameter, rightDiameter, height);
18

19
let maxHeight = Math.max(leftPair[1], rightPair[1]) + 1;
20

21
return [maxDiameter, maxHeight];
22
}
23

24
// diameter --> number of edges between two end nodes
25
var diameterOfBinaryTree = function (root) {
26
let pair = fastDiameter(root);
27

28
return pair[0] - 1;
29
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0