Skip to content

Latest commit

 

History

History
45 lines (40 loc) · 1.2 KB

从上往下打印二叉树.md

File metadata and controls

45 lines (40 loc) · 1.2 KB
note
createdAt modifiedAt tags id
2020-05-14 12:50:48 UTC
2020-05-17 08:34:14 UTC
考点/举例让抽象具体化
难度/5

从上往下打印二叉树

#考点/举例让抽象具体化 #难度/5 牛客网

题目描述

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

答案

/* function TreeNode(x) {
    this.val = x;
    this.left = null;
    this.right = null;
} */

function PrintFromTopToBottom(root) {
  if (!root) {
    return [];
  }
  var result = [root]; //用一个辅助数组作为队列来帮助遍历
  var data = [root.val]; // 第一个元素为根节点

  while (result.length) {
    root = result.shift(); // 指向下一个元素
    if (root.left) {
      data.push(root.left.val);
      result.push(root.left);
    }
    if (root.right) {
      data.push(root.right.val);
      result.push(root.right);
    }
  }
  return data;
}

其实就是个 BFS 用 Queue 实现