Skip to the content.

Ex32-I 从上到下打印二叉树

题目描述

从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。 例如: 给定二叉树: [3,9,20,null,null,15,7] 返回:[3, 9, 20, 15, 7]

解题思路

这个题比较基础,基本上考察的就是广度优先搜索。

代码

class Solution
{
public:
  std::vector<int>
  levelOrder (TreeNode *root)
  {
    std::vector<int> vec;
    if (!root)
      return vec;
    std::queue<TreeNode *> q;
    q.push (root);
    while (!q.empty ())
      {
        TreeNode *node = q.front ();
        q.pop ();
        vec.push_back (node->val);
        if (node->left)
          q.push (node->left);
        if (node->right)
          q.push (node->right);
      }
    return vec;
  }
};

结果

执行结果:通过

执行用时:8 ms, 在所有 C++ 提交中击败了45.53%的用户

内存消耗:12.2 MB, 在所有 C++ 提交中击败了31.58%的用户