首页 > 其他 > 详细

从上往下打印二叉树

时间:2019-12-22 13:23:41      阅读:105      评论:0      收藏:0      [点我收藏+]

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

 

这道题是非常基础的一道题,没有特殊的要求,用队列就可以解决。将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 };

 

从上往下打印二叉树

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!