【剑指offer】22 从上往下打印二叉树
题目地址:从上往下打印二叉树
题目描述
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
题目示例
输入:
{5,4,#,3,#,2,#,1}
返回值:
[5,4,3,2,1]
解法分析
本题考查二叉树的广度遍历,可以借助队列先进先出的特点来保存结点。
代码
1 function PrintFromTopToBottom(root) 2 { 3 // write code here 4 var arr = []; 5 if(!root) return arr; 6 var tree = []; 7 tree.push(root); 8 while(tree.length){ 9 var rt = tree[0]; 10 if(rt.left) tree.push(rt.left); 11 if(rt.right) tree.push(rt.right); 12 arr.push(tree.shift().val); 13 } 14 return arr; 15 }
执行结果