《剑指offer》— JavaScript(22)从上往下打印二叉树

从上往下打印二叉树

题目描述

从上往下打印出二叉树的每个节点,同层节点从左至右打印。


思路

  1. 借助两个辅助队列,一个用来存放结点,一个用来存放结点值;
  2. 先将根节点加入到队列中,然后遍历队列中的元素,遍历过程中,访问该元素的左右节点,再将左右子节点加入到队列中来。

实现代码

/* function TreeNode(x) {
    this.val = x;
    this.left = null;
    this.right = null;
} */
function PrintFromTopToBottom(root) {
    var queue = [];
    queue.push(root);
    var result = [];

    if (root == null) {
        return result;
    }

    while (queue.length) {

        var temp = queue.shift();

        result.push(temp.val);

        if (temp.left) {
            queue.push(temp.left);
        }
        if (temp.right) {
            queue.push(temp.right);
        }
    }

    return result;

}

推荐阅读更多精彩内容

  • B树的定义 一棵m阶的B树满足下列条件: 树中每个结点至多有m个孩子。 除根结点和叶子结点外,其它每个结点至少有m...
    笨尛孩你谁啊阅读 8,121评论 0 24
  • 树的概述 树是一种非常常用的数据结构,树与前面介绍的线性表,栈,队列等线性结构不同,树是一种非线性结构 1.树的定...
    Jack921阅读 3,726评论 1 30
  • 什么是二叉树? 引用自百度百科:在计算机科学中,二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(...
    AnICoo1阅读 769评论 0 1
  • 剑指 offer 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成...
    faremax阅读 1,566评论 0 7
  • 文 / 伯马遇 HR会嫌弃跳槽频繁的求职者吗? 回答自然是肯定的,就像一位HR在网上开玩笑的说到:“我自己跳槽频繁...
    伯马遇管家阅读 741评论 0 0