22-从上往下打印二叉树-广度优先
2020-05-15 本文已影响0人
马甲要掉了
题目描述
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
思路
从下打印就是按层次打印,其实也就是树的广度遍历。
一般来说树的广度遍历用队列,利用先进先出的特点来保存之前节点,并操作之前的节点。
树的深度遍历一般来说用栈或者递归,利用先进后出的特点来保存之前节点,把之前的节点留到后面操作。
代码如下:
/* function TreeNode(x) {
this.val = x;
this.left = null;
this.right = null;
} */
function PrintFromTopToBottom(root)
{
// write code here
let queue = [];
let res = [];
if (root == null) {
return res;
}
queue.push(root);
while(queue.length){
let sroot = queue.shift();
if(sroot.left!=null){
queue.push(sroot.left);
}
if(sroot.right!=null){
queue.push(sroot.right);
}
res.push(sroot.val)
}
return res;
}