剑指offer(56)-按之字形顺序打印二叉树
来源:互联网 发布:sql server语句 编辑:程序博客网 时间:2024/05/16 14:20
题目描述
请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。
代码
/*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; stack<TreeNode*> stack1,stack2; bool direction = true; if (pRoot != NULL) { stack1.push(pRoot); } struct TreeNode *node; while (!stack1.empty() || !stack2.empty()) { vector<int> data; if (!stack1.empty()) { while (!stack1.empty()) { node = stack1.top(); stack1.pop(); data.push_back(node->val); if (node->left != NULL) { stack2.push(node->left); } if (node->right != NULL) { stack2.push(node->right); } } result.push_back(data); }else if (!stack2.empty()){ while (!stack2.empty()) { node = stack2.top(); stack2.pop(); data.push_back(node->val); if (node->right != NULL) { stack1.push(node->right); } if (node->left != NULL) { stack1.push(node->left); } } result.push_back(data); } } return result; }};
0 0
- 剑指offer(56)-按之字形顺序打印二叉树
- 剑指offer--按之字形顺序打印二叉树
- 《剑指offer》按之字形顺序打印二叉树
- 剑指offer—按之字形顺序打印二叉树
- 《剑指offer》——按之字形顺序打印二叉树
- 剑指offer:按之字形顺序打印二叉树
- 剑指offer:按之字形顺序打印二叉树
- [剑指offer]按之字形顺序打印二叉树
- 剑指offer(五十三)之按之字形顺序打印二叉树
- 剑指Offer--061-按之字形顺序打印二叉树
- 《剑指offer》:[61]按之字形顺序打印二叉树
- 剑指offer——按之字形顺序打印二叉树
- 剑指offer|按之字形顺序打印二叉树
- 剑指offer-按之字形顺序打印二叉树
- 剑指offer-----按之字形顺序打印二叉树(java版)
- 【剑指Offer】按之字形顺序打印二叉树
- 剑指offer-按之字形顺序打印二叉树-php
- 剑指offer-59.按之字形顺序打印二叉树
- WPF窗体样式继承
- 浏览器缓存知识小结及应用
- tomcat目录结构
- 5文件上传与下载
- linux上安装部署activemq
- 剑指offer(56)-按之字形顺序打印二叉树
- 6拦截器
- java基础八:字符串
- VirtualBox迁移虚拟机和磁盘VDI
- absolute与margin实现完全居中布局(IE8+)
- 半透明窗口中显示标准控件(控件与文字不透明)的实现方案(附源码)
- 日志
- 8防止重复提交
- NIO(一)