面试题61:按之字形顺序打印二叉树
来源:互联网 发布:javascript charat 编辑:程序博客网 时间:2024/05/22 15:46
题目描述
请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。
解:
两个栈
/*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) return result; stack<TreeNode*> s[2]; int current = 0; int next = 1; s[current].push(pRoot); vector<int> v; while(!s[current].empty() || ! s[next].empty()){ TreeNode* pCur = s[current].top(); s[current].pop(); v.push_back(pCur->val); if(current == 0){ if(pCur->left) s[next].push(pCur->left); if(pCur->right) s[next].push(pCur->right); }else{ if(pCur->right) s[next].push(pCur->right); if(pCur->left) s[next].push(pCur->left); } if(s[current].empty()){ result.push_back(v); v.clear(); current = 1 - current; next = 1 - next; } } return result; }};
0 0
- 面试题61:按之字形顺序打印二叉树
- 面试题61:按之字形顺序打印二叉树
- 面试题61:按之字形顺序打印二叉树
- 面试题61:按之字形顺序打印二叉树
- 面试题68:按之字形顺序打印二叉树
- 面试题61. 按之字形顺序打印二叉树
- 《剑指Offer》学习笔记--面试题61:按之字形顺序打印二叉树
- 【剑指Offer学习】【面试题61:按之字形顺序打印二叉树】
- 剑指offer-面试题61:按之字形顺序打印二叉树
- 剑指offer--面试题61:按之字形顺序打印二叉树
- 剑指offer-面试题61-按之字形顺序打印二叉树
- 剑指offer 面试题61 按之字形顺序打印二叉树
- 剑指offer面试题61 按之字形顺序打印二叉树(java实现)
- 【剑指Offer】面试题61:按之字形顺序打印二叉树
- 《剑指offer》Python语言 面试题61:按之字形顺序打印二叉树
- 剑指offer——面试题61:按之字形顺序打印二叉树
- 按之字形顺序打印二叉树
- 按之字形顺序打印二叉树
- HDU3555-Bomb
- C++构造函数;
- 面试题60:把二叉树打印成多行
- 字符串和字符串结束标志(二)
- Spring设计及源码分析
- 面试题61:按之字形顺序打印二叉树
- 基于Lucene的搜索引擎的建立
- 用Java2D画出树的结构图
- DPMM(狄利克雷过程混合模型)浅解和添加似然函数的问题
- 2017算法课.10(Find All Numbers Disappeared in an Array)
- 设计学校官网框架
- 关于联表的处理
- 史上最简单的 MySQL 教程(四)「SQL 基本操作 之 库操作」
- 144.看门狗的bug