您的位置:首页 > Web前端

剑指offer :从上往下打印二叉树

2019-03-29 19:55 239 查看

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

其实就是二叉树的层序遍历:

 

遍历结果: A B C D E F G H

先存进去的节点先打印,这样的特性不就和队列FIFO的特性相同了吗?

处理的方法就是将二叉树的节点从上到下,从左到右的存入队列中,然后逐个打印。

 

[code]struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
TreeNode(int x)
:val(x), left(NULL), right(NULL)
{}
};

class Solution {
public:
vector<int> PrintFromTopToBottom(TreeNode* root) {
vector<int> result;
if (root == nullptr)
{
return result;
}
queue<TreeNode*> tree_node;
tree_node.push(root);
while (!tree_node.empty())
{
TreeNode *node = tree_node.front();
if (node->left != nullptr)
tree_node.push(node->left);
if (node->right != nullptr)
tree_node.push(node->right);
result.push_back(node->val);
tree_node.pop();
}
return result;

}
};

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: