前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >头条面试题:计算目录树的深度

头条面试题:计算目录树的深度

作者头像
前端迷
修改2020-09-18 21:18:01
5440
修改2020-09-18 21:18:01
举报
文章被收录于专栏:前端迷

题目:前端在后台管理系统经常会用到目录树,求下面目录tree的高度。

代码语言:javascript
复制
const tree = {
  name: 'root',
  children: [
    { name: '叶子1-1' },
    { name: '叶子1-2' },
    {
      name: '叶子2-1',
      children: [{
        name: '叶子3-1',
        children: [{
          name: '叶子4-1'
        }]
      }]
    }
  ]
}

function getDepth(tree) {
  let depth = 0

  if (tree) {
    let arr = [tree]
    let temp = arr
    while (temp.length) {
      arr = temp
      temp = []
      for (let i = 0; i < arr.length; i++) {
        if (arr[i].children && arr[i].children.length) {
          for (let j = 0; j < arr[i].children.length; j++) {
            temp.push(arr[i].children[j])
          }
        }
      }
      depth++
    }
  }
  return depth
}console.log(getDepth(tree)); //输出4

思路:

得出depth即为树的高度得出depth即为树

  1. 定义变量depth为0
  2. 定义一个空数组temp,然后遍历tree,如果tree有children,就push到temp里面
  3. 开始while循环,如果temp长度不为0,depth++;如果temp长度为0,停止
  4. 得出depth即为树的高度 得出depth即为树的高度得出depth即为树的高度得出depth即为树的高度
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-09-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 前端迷 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 思路:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档