二叉树从上到下打印
题目描述:
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
问题分析:
从上到下遍历,自然要记住顺序,那么一个数组用来存节点,一个用来存要打印的值
按照顺序:
res 添加值,queue添加节点,按照左右顺序添加,这样,每次从queue中出队的时候都有顺序
代码展示:
/* function TreeNode(x) {
this.val = x;
this.left = null;
this.right = null;
} */
function PrintFromTopToBottom(root)
{
// write code here
if(root == null)
return [];
var queue = []; //存储节点,删除节点
var res = []; //存储节点的值,return
queue.push(root);
while (queue.length){
var node = queue.shift();//返回arr数组中的第一个元素
res.push(node.val); //将节点的值放入res中,return
if (node.left){ //左儿子
queue.push(node.left);
}
if (node.right){ //右儿子
queue.push(node.right);
}
}
return res;
}