【剑指Offer】【树】从上到下打印二叉树(层序遍历)
2024-09-08 18:51:25
题目:从上往下打印出二叉树的每个节点,同层节点从左至右打印。
A:创建一个辅助队列,将根节点入队,添加到输出的vector中
循环:到队为空为止
若二叉树有左结点则将左节点入队
若二叉树有右节点则将右节点入队
队头元素出队
/*
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> ret;
ret.clear();
if (root == nullptr)
{
return ret;
}
queue<TreeNode*> m_deque;
m_deque.push(root);//根节点入队 while (!m_deque.empty())
{
ret.push_back(m_deque.front()->val);// ret存入队头元素
if (m_deque.front()->left != nullptr)
{
m_deque.push(m_deque.front()->left);//左节点入队
}
if (m_deque.front()->right != nullptr)
{
m_deque.push(m_deque.front()->right);//右节点入队
}
m_deque.pop();//队头元素出队
}
return ret;
}
};
相关题目:
加减二叉树:
现在有一棵无限大的满二叉树,根节点编号为1。编号为i的节点的左儿子编号为2*i,右儿子2*i+1(比如根节点1的左儿子为2,右儿子为3,2的左儿子为4,右儿子为5。)。牛牛在这棵树上做一个游戏,他从妞妞那里得到了两个数n和k,妞妞希望他拿着数字0从根节点开始往下走,每次选择一条边移动,到达一个节点时选择加上这个节点的编号或者减去这个节点的编号。在走到第k个节点时所得到的数字刚好等于n。
这样的路径当然有很多。为了增加难度,妞妞决定让牛牛告诉她经过的节点的编号和最小的路径。
妞妞很聪明,给出的问题都是一定存在答案的。
你能帮帮牛牛吗?https://www.nowcoder.com/practice/39953c879b79412b85fbca2ffdeb0a4c
最新文章
- EditPlus快捷键
- WebStorm 9 自动编译 SCSS 产出 CSS 和 source maps
- InteropBitmap指定内存,绑定WPF的Imag控件时刷新问题。
- 十大谷歌Google搜索技巧分享
- CSS背景属性Background详解
- 使用命令行设置svn忽略列表
- hdu 1874 畅通工程续 Dijkstra
- Tomcat6.0数据源配置
- Dalvik虚拟机的启动过程分析
- 语音频谱语音信号处理之(四)梅尔频率倒谱系数(MFCC)
- JAVA基础知识总结:九
- node.js之用ajax获取数据和ejs获取数据
- HDU 4333 Revolving Digits [扩展KMP]【学习笔记】
- 不同数据库的表迁移SqlServer
- kubernetes之Kubeadm快速安装v1.12.0版
- 学号 20175313《Java程序设计》 第七周学习总结
- 【Android】ImageView ScaleType属性值
- .net读取Excel转datatable、.net读取的Excel存在合并单元格并且转成datatable
- Mysql8.0的登录大坑……(忘记登录密码也可以这么搞)
- Go-学习之路