二叉樹從上到下打印
題目描述:
從上往下打印出二叉樹的每個節點,同層節點從左至右打印。
問題分析:
從上到下遍歷,自然要記住順序,那麼一個數組用來存節點,一個用來存要打印的值
按照順序:
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;
}