共计 485 个字符,预计需要花费 2 分钟才能阅读完成。
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 循环中,咱们须要做的事件很简答:
- 把一层的 node 全副取出来
- 计数 +1
- 把下一层的节点放回 queue,而后反复。
由此能够失去一个迭代的实现。
通过,撒花!
这个题目很简略,有趣味能够去 https://bfe.dev 本人试试。
心愿能帮忙到你,下次见!
正文完
发表至: javascript
2020-09-04