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

从上往下打印二叉树

时间:2016-08-19 12:48:02      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:

  从上往下打印二叉树的每一个节点,同一层的节点按照从左至右的顺序打印,二叉树节点的数据结构如下:

1 struct TreeNode {
2     int val;
3     struct TreeNode *left;
4     struct TreeNode *right;
5     TreeNode(int x) :
6             val(x), left(NULL), right(NULL) {
7     }
8 };

    二叉树的广度优先遍历,用一个队列就可以解决:

 1 vector<int> PrintFromTopToBottom(TreeNode *root) {
 2     queue<TreeNode*> nodes;
 3     vector<int> outputValue;
 4     if(root == NULL)
 5         return outputValue;
 6     int index = 0;
 7     nodes.push_back(root);
 8     while(!nodes.empty()){
 9         TreeNode* node;
10         node = nodes.front();
11         outputValue.push_back(node->val);
12         if(node->left != NULL)
13             nodes.push(node->left);
14         if(node->right != NULL)
15             nodes.push(node->right);
16     }
17     return outputValue;
18 }

 

从上往下打印二叉树

标签:

原文地址:http://www.cnblogs.com/yangrenzhi/p/5787035.html

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