计算树的深度宽度

297 阅读1分钟

题目:

  const tree = {
    id: 1,
    children: [
      { id: 2, children: [{ id: 3 }] },
      {
        id: 4,
        children: [
          {
            id: 5,
            children: [{ id: 6 }],
          },
        ],
      },
    ],
  };

计算树的深度

  function maxDepth(node) {
    let deep = 0;
    if (node.children) {
      node.children.forEach(item => {
        console.log('item', item)
        deep = Math.max(deep, maxDepth(item) + 1)
      })
    }

    return deep;
  }

计算树的宽度

  function getExtent(node) {
    let extend = 0;
    if (node.children) {
      node.children.forEach(item => {
        extend += getExtent(item)
      })
    } else {
      extend += 1
    }
    return extend;
  }