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

从上往下打印二叉树

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。
全部评论

相关推荐

04-15 09:59
门头沟学院 C++
yy_11:小公司人家没必要泄密,大公司都是本地部署了
你想吐槽公司的哪些规定
点赞 评论 收藏
分享
代码飞升AL:同学院本建议你换一个项目 就算你不去特意搜也应该知道点评不能写吧 保持投递不要停 然后快速弄一个项目换上去 公司就别挑了 我第一段120一天 快速跳就行
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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