按之字形顺序打印二叉树
来源:互联网 发布:visual c 知乎 编辑:程序博客网 时间:2024/06/05 23:57
题目描述:
请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。
解题思路:
层次遍历,改变是先计算队列的大小,循环存放这一层的节点于vec中,然后将下一层中的节点入列,设置是否反向位,true反向,并存入result中。
C++实现代码:
/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*/class Solution {public: vector<vector<int> > Print(TreeNode* pRoot) { vector<vector<int> > result; if(pRoot==NULL) return result; queue<TreeNode*> qt; qt.push(pRoot); bool model=false; while(!qt.empty()) { vector<int> vec; int st=qt.size(); for(int i=0;i<st;i++) { TreeNode* x=qt.front(); qt.pop(); vec.push_back(x->val); if(x->left!=NULL) qt.push(x->left); if(x->right!=NULL) qt.push(x->right); } if(model) std::reverse(vec.begin(),vec.end()); result.push_back(vec); model=!model; } return result; }};
阅读全文
0 0
- 按之字形顺序打印二叉树
- 按之字形顺序打印二叉树
- 按之字形顺序打印二叉树
- 按之字形顺序打印二叉树
- 按之字形顺序打印二叉树
- 牛客网 | 按之字形顺序打印二叉树
- 按之字形顺序打印二叉树
- 按之字形顺序打印二叉树
- 55.按之字形顺序打印二叉树
- 按之字形顺序打印二叉树
- 按之字形顺序打印二叉树
- 按之字形顺序打印二叉树
- 按之字形顺序打印二叉树
- 【59】按之字形顺序打印二叉树
- 按之字形顺序打印二叉树
- Q61:按之字形顺序打印二叉树
- 按之字形顺序打印二叉树
- 按之字形顺序打印二叉树
- HTTP和https的区别
- 多线程
- sql 行转列、分组、排序,
- crontab 每10秒执行一次
- matlab对图像进行重命名
- 按之字形顺序打印二叉树
- FPGA浮点小数与定点小数的换算及应用
- 关于线程(Thread)的几个问题
- svn添加新资源库报验证位置时发生错误
- Mac系统清理工具 cleanmymac双十二来袭
- 【学习C++】两个源文件CPP(cpp与cpp) 或 头文件h与源文件cpp
- html页面,文字的自动换行
- html学习心得一
- 剑指Offer 面试题26:树的子结构 Java代码实现