Complete Binary Tree Inserter LeetCode solution in JavaScript

1
/**
2
* Definition for a binary tree node.
3
* function TreeNode(val, left, right) {
4
* this.val = (val===undefined ? 0 : val)
5
* this.left = (left===undefined ? null : left)
6
* this.right = (right===undefined ? null : right)
7
* }
8
*/
9
/**
10
* @param {TreeNode} root
11
*/
12
var CBTInserter = function (root) {
13
this.root = root;
14
};
15

16
/**
17
* @param {number} val
18
* @return {number}
19
*/
20
CBTInserter.prototype.insert = function (val) {
21
let cur = this.root;
22
let queue = [cur];
23
while (queue.length) {
24
let updatedQueue = [];
25
while (queue.length) {
26
let node = queue.shift();
27
if (!node.left) {
28
node.left = new TreeNode(val);
29
return node.val;
30
} else updatedQueue.push(node.left);
31
if (!node.right) {
32
node.right = new TreeNode(val);
33
return node.val;
34
} else updatedQueue.push(node.right);
35
}
36
queue = updatedQueue;
37
}
38
};
39

40
/**
41
* @return {TreeNode}
42
*/
43
CBTInserter.prototype.get_root = function () {
44
return this.root;
45
};
46

47
/**
48
* Your CBTInserter object will be instantiated and called as such:
49
* var obj = new CBTInserter(root)
50
* var param_1 = obj.insert(val)
51
* var param_2 = obj.get_root()
52
*/

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0