剑指offer 23:从上往下打印二叉树
2024-09-01 23:35:20
题目描述
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
解题思路
按照从左往右从上到下的顺序打印节点,需要我们维护一个队列,这个队列放入元素的顺序是访问队头节点(起始先放入根节点),则若当前节点的左右子树非空,则将左右子节点依次放入队尾,对所有节点执行此操作,然后按顺序遍历队列。
C++代码实现:
/*
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==NULL){
return result;
}
queue<TreeNode*> que; que.push(root);
while(!que.empty()){
if(root->left!=NULL){
que.push(root->left);
}
if(root->right!=NULL){
que.push(root->right);
}
int val=root->val;
result.push_back(val);
que.pop();
root=que.front();
}
return result;
} };
最新文章
- C#三级联动
- 通过Dockerfile建立.NET Core mvc Image
- FMS 客户端带宽计算、带宽限制
- dede使用方法---用js让当前导航高亮显示
- RPC和Socket,RMI和RPC之间的关系
- Java学习指南学习笔记
- Spring MVC + jpa框架搭建,及全面分析
- Force.com微信开发系列(三)申请测试账号及回复图文消息
- imx6 RGB LCD
- 第六篇 Integration Services:初级工作流管理
- open file 值修改
- 手机金属外壳加工工艺:铸造、锻造、冲压、CNC
- linux(Centos 6.3)学习笔记
- shiro的入门实例-shiro于spring的整合
- iOS开发之CALayer
- Natas Wargame Level25 Writeup(头部注入+POST/GET注入)
- 2018上C语言程序设计(初级)作业- 第2次作业
- Spring Boot自动配置与Spring 条件化配置
- java 获取昨天日期
- [转]C#如何判断操作系统位数是32位还是64位