二叉树的深度

95 阅读1分钟

非递归(广度遍历)

const deep = tree => {
  const stack = [tree]
  let level = 0

  while(stack.length) {
    let len = stack.length
    level++

    for (let i = 0; i < len; i++) {
      const item = stack.shift()
      const { left, right } = item
      if (left) stack.push(left)
      if (right) stack.push(right)
    }
  }

  return level
}

递归实现

const deep = tree => {
  if (!tree) return 0
  
  return Math.max(deep(tree.left), deep(tree.right)) + 1
}