剑指Offer——从上到下打印二叉树(JS实现)
原创
©著作权归作者所有:来自51CTO博客作者wb59770b05237ae的原创作品,请联系作者获取转载授权,否则将追究法律责任
题目描述
解题思路
- 使用队列的思想来进行层次遍历
- 数组队列存储当前节点的左右指针,然后将队头清除,知道队列中的所有元素都被清空。
解题代码
var levelOrder = function (root) {
if (root === null) return [];
const result = [];
const pointer = [root];
while (pointer.length !== 0) {
result.push(pointer[0].val);
if (pointer[0].left !== null) {
pointer.push(pointer[0].left);
}
if (pointer[0].right !== null) {
pointer.push(pointer[0].right);
}
pointer.shift();
}
return result;
};
总结
- 本题属于二叉树的层次遍历问题
- 核心点在于使用队列来存储当前节点的左右子节点。
- 队列的判断条件是队头元素是否存在。