剑指offer

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;
}
上一篇 下一篇

猜你喜欢

热点阅读