关于javascript:BFEdev前端刷题58-获取DOM-tree高度

bfe.dev 是一个针对前端的刷题网站,像是前端的LeetCode。该系列文章是我在下面的刷题日记。

题目58

BFE.dev#58 获取DOM tree高度

剖析

/**
 * @param { HTMLElement | null } tree
 * @returns { number }
 */
function getHeight(tree) {
  // your code here         
}

一个tree的高度 = 子tree的最大高度 + 1。由此咱们能够很容易地失去递归解法。

开始代码(递归)

留神非凡null case的解决,和 Math.max(...[])的应用。

用迭代重写

每次遇到递归,都要设想如果不必递归怎么写。这是程序员面试的根本要求。

就本题目而言,咱们其实想要晓得这个tree有多少层,那么就能够用一个queue一层一层地遍历就好了,每次涤荡一层,就计数+1。大略这样的构造

在while 循环中,咱们须要做的事件很简答:

  1. 把一层的node全副取出来
  2. 计数 +1
  3. 把下一层的节点放回queue,而后反复。

由此能够失去一个迭代的实现。

通过,撒花!

这个题目很简略,有趣味能够去 https://bfe.dev 本人试试。

心愿能帮忙到你,下次见!

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理