下面这个代码是树的结构
let tree = {
val: "1",
left: {
val: "2",
left: { val: "4", left: null , right: null },
right: { val: "5", left: null , right: null }
},
right: {
val: "3",
left: null,
right: null
}
}
需要做的是求这个树的最小深度。
首先将这个树 ,转成树形结构,便于观察
下图的最小深度明显是 2
程序上的实现
function treeFn(tree) {
if (!tree) {
return 0
}
let left = treeFn(tree.left)
let right = treeFn(tree.right)
if (tree.left === null && tree.right === null) {
return left + right + 1
}
return Math.min(left, right) + 1
}
console.log(treeFn(tree));
具体的表现 树的结构时栈,先进后出的原理, 看懂了这个就可以了。