您的位置:首页 > Web前端 > JavaScript

JavaScript版《剑指offer》刷题(21)从上往下打印二叉树

2019-07-17 09:38 288 查看

1.题目描述

从上往下打印出二叉树的每个节点,同层节点从左至右打印。

2.思路

(通过上面具体例子的分析,我们可以找到从上到下打印二叉树的规律:每次打印一个节点的时候,如果该节点有子节点,则把该节点的子节点放到一个队列的末尾。接下来到队列的头部取出最早进入队列的节点,重复前面的打印操作,直至队列中所有的节点都被打印出来。)

3.代码

/* function TreeNode(x) {
this.val = x;
this.left = null;
this.right = null;
} */
function PrintFromTopToBottom(root) {
const queue = [],
res = [];
if (root === null) {
return res;
}
queue.push(root);
while (queue.length) {
const pRoot = queue.shift();
if (pRoot.left !== null) {
queue.push(pRoot.left);
}
if (pRoot.right !== null) {
queue.push(pRoot.right);
}
res.push(pRoot.val);
}
return res;
}

参考文章:
https://www.cnblogs.com/echovic/p/6482719.html
https://www.geek-share.com/detail/2732998580.html
https://github.com/DavidChen93/-offer-JS-/blob/master/32.1 从上到下打印二叉树(层序遍历).js

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: