《剑指Offer》 从上往下打印出二叉树
来源:互联网 发布:linux设置时间 编辑:程序博客网 时间:2024/05/22 16:50
题目描述:
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
思路:
其实就是层序遍历,设置一个TreeNode*类型的队列s,用来保存二叉树层序遍历的节点,因为队列是先进先出,所以很好地控制了同层节点从左至右打印。如果root为空,直接返回空;将root入队列,当s不为空时,将此时s对应的节点的val放到treenum里,然后将s的左右孩子也入队列,再将已经取过val的节点pop。
代码:
/*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> treenum; queue<TreeNode*> s;//用来保存按层序遍历顺序的节点 if(root==NULL){//如果root为空,直接返回空 return treenum; } s.push(root);//将root入队列 while(!s.empty()){ root=s.front(); treenum.push_back(root->val);//当s不为空时,将此时s对应的节点的val放到treenum里 if(root->left!=NULL){//将s的左右孩子也入队列(如果存在) s.push(root->left); } if(root->right!=NULL){ s.push(root->right); } s.pop();//将已经取过val的节点出队列 } return treenum; }};
输出结果:运行时间: <1 ms 占用内存:8568K 状态:答案正确
0 0
- 《剑指Offer》 从上往下打印出二叉树
- 《剑指Offer》面试题:从上往下打印出二叉树的每个节点
- 《剑指Offer》面试题:从上往下打印出二叉树的每个节点
- 剑指offer 从上往下打印出二叉树的每个节点
- 剑指offer-07-从上往下打印出二叉树的每个节点,同层节点从左至右打印。
- 剑指offer:从上往下打印出二叉树的每个节点,同层节点从左至右打印
- 剑指offer-从上往下打印出二叉树的每个节点,同层节点从左至右打印。
- 剑指offer: 从上往下打印二叉树(树)
- 剑指offer:从上往下打印二叉树
- 剑指offer系列源码-从上往下打印二叉树
- 剑指offer--从上往下打印二叉树
- 剑指Offer之 - 从上往下打印二叉树
- 剑指offer 23 - 从上往下打印二叉树
- 剑指offer之从上往下打印二叉树
- 《剑指offer》之从上往下打印二叉树
- 《剑指offer》从上往下打印二叉树
- 剑指Offer系列---(25)从上往下打印二叉树
- 剑指offer—从上往下打印二叉树
- linux 生成ssl证书
- java项目类型---java新手
- 每天一个linux命令(30): chown命令
- 如何理解c++中的引用折叠?
- 初始化问题
- 《剑指Offer》 从上往下打印出二叉树
- 单链表翻转操作
- struts2_07_result type(结果类型)
- 到了Vue2.x有哪些变化?—— 组件通信
- 用户登录和记录密码
- C++ 语法实验室之explicit关键字
- 配置iptables,把80端口转到8080的简单方法
- 学习H5页面遇到的一些问题与解决办法汇总
- CKEditor-4.6.2结合Struts2的使用,加CKEditor图片上传的配置