function treeDepth(root) {
if(!root) return 0;
let depth = 1;
let queue = new Array();
queue.push(root);
while(queue.length > 0) {
let qSize = queue.length;
for(let i = 0; i < qSize; i ++) {
let element = queue.pop();
if(element.left == null && element.right == null) {
return depth;
}
if(element.left) {
queue.push(element.left)
}
if(element.right) {
queue.push(element.right)
}
}
depth ++;
}
}
function treeMinDepth(tree) {
if(!tree || tree.length == 0) return 0;
let depth = 1;
let queue = [0];
while(queue.length > 0) {
let qSize = queue.length;
for(let i = 0; i < qSize; i ++) {
let currentIndex = queue.shift();
if((tree.length < 2*currentIndex + 1 || tree[2*currentIndex + 1] == null)
&& (tree.length < 2*currentIndex + 2 || tree[2*currentIndex + 2] == null)) {
return depth;
}
if(tree.length > 2*currentIndex + 1 && tree[2*currentIndex + 1] != null) {
queue.push(2*currentIndex + 1)
}
if(tree.length > 2*currentIndex + 2 && tree[2*currentIndex + 2] != null) {
queue.push(2*currentIndex + 2)
}
}
depth ++;
}
}
// 0
// / \
// 1 2
// / / \
// 3 5 6
// / \
// 11 12
//
let minDepthOfTree = treeMinDepth([0,1,2,3,null,5,6, null, null, null, null, 11, 12])
console.log("minDepthOfTree = " + minDepthOfTree)
function treeMaxDepth(tree) {
if(!tree || tree.length == 0) return 0;
let depth = 0;
let queue = [0];
while(queue.length > 0) {
let qSize = queue.length;
for(let i = 0; i < qSize; i ++) {
let currentIndex = queue.shift();
// if((tree.length < 2*currentIndex + 1 || tree[2*currentIndex + 1] == null)
// && (tree.length < 2*currentIndex + 2 || tree[2*currentIndex + 2] == null)) {
// continue
// }
if(tree.length > 2*currentIndex + 1 && tree[2*currentIndex + 1] != null) {
queue.push(2*currentIndex + 1)
}
if(tree.length > 2*currentIndex + 2 && tree[2*currentIndex + 2] != null) {
queue.push(2*currentIndex + 2)
}
}
depth ++;
}
return depth;
}
// 0
// / \
// 1 2
// / / \
// 3 5 6
// / \
// 11 12
//
let maxDepthOfTree = treeMaxDepth([0,1,2,3,null,5,6, null, null, null, null, 11, 12])
console.log("maxDepthOfTree = " + maxDepthOfTree)
console