题解 | #从上往下打印二叉树#

从上往下打印二叉树

http://www.nowcoder.com/practice/7fe2212963db4790b57431d9ed259701

方法一:BFS

  • 题目很简单,从上往下层层遍历并打印节点值即可,用一个队列来存储节点,遍历打印当前节点的值,并将子节点入队。
    class Solution {
    public:
      vector<int> PrintFromTopToBottom(TreeNode* root) {
          queue<TreeNode*> q;
          vector<int> ans;
          if(root==nullptr)
              return {};
          q.push(root);
          while(!q.empty()){
              TreeNode* cur=q.front();
              q.pop();
              ans.push_back(cur->val);
              if(cur->left)
                  q.push(cur->left);
              if(cur->right)
                  q.push(cur->right);
          }
          return ans;
      }
    };

    图解如下:

    图片说明
    图片说明
    图片说明
    图片说明
    图片说明
    图片说明

    复杂度分析:

    时间复杂度:O(n),n为节点数目,遍历每个节点一次。
    空间复杂度:O(n),与每层节点数目的最大值相关,满二叉树的情况下,最大值为(n+1)/2。
全部评论

相关推荐

昨天 14:14
门头沟学院 Java
7.10投递7.15感谢信
投递地平线等公司7个岗位
点赞 评论 收藏
分享
写不来代码的小黑:这么小的城市能有做it的公司也不容易
点赞 评论 收藏
分享
06-07 00:00
已编辑
腾讯_后端开发
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务