码迷,mamicode.com
首页 > 其他好文 > 详细

从上往下打印二叉树

时间:2019-12-22 12:26:01      阅读:79      评论:0      收藏:0      [点我收藏+]

标签:nbsp   while   bsp   解决   treenode   div   pre   res   要求   

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

 

这道题是非常基础的一道题,没有特殊的要求,用队列就可以解决。将root节点放到队列里,如果队列不为空,每次弹出队首元素,并将队首元素的值放到数组里。如果这个队首元素有左儿子,则把左儿子压入队列,如果有右儿子,把右儿子也压入队列。因为队列是先进先出的,所以可以实现层级遍历。

如果root为空,可以直接用 vector<int>({}) 来返回。

 

c++代码如下:

 1 class Solution {
 2 public:
 3     vector<int> PrintFromTopToBottom(TreeNode* root) {
 4         if(!root) return vector<int>({});
 5         queue<TreeNode*> q;
 6         vector<int> res;
 7         q.push(root);
 8         while(q.size()){
 9             auto t = q.front();
10             q.pop();
11             res.push_back(t->val);
12             if(t->left) q.push(t->left);
13             if(t->right) q.push(t->right);
14         }
15         return res;
16     }
17 };

 

从上往下打印二叉树

标签:nbsp   while   bsp   解决   treenode   div   pre   res   要求   

原文地址:https://www.cnblogs.com/hellosnow/p/12079439.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!