js 如何遍历树的深度(高度)
使用栈遍历,非递归
function getDepth(data = []) {
let stack = [data]
let depth = 0
while (stack.length > 0) {
let temp = []
const list = stack.pop()
if (list.length === 0) {
continue
}
depth++
// 思路:使用数组遍历的方式,消减树的层级
list.forEach((item) => {
if (item && Array.isArray(item.children)) {
temp = temp.concat(...item.children)
}
})
if (temp.length > 0) {
stack.push(temp)
}
}
return depth
}
测试代码
const tree = [
{
label: '12月',
children: [
{
label: '加分',
},
{
label: '减分',
children: [
{
label: '加分',
},
{
label: '减分',
},
],
},
],
},
]
console.log(getDepth(tree))
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· [翻译] 为什么 Tracebit 用 C# 开发
· 腾讯ima接入deepseek-r1,借用别人脑子用用成真了~
· Deepseek官网太卡,教你白嫖阿里云的Deepseek-R1满血版
· DeepSeek崛起:程序员“饭碗”被抢,还是职业进化新起点?
· RFID实践——.NET IoT程序读取高频RFID卡/标签