LeetCode:Binary Tree Zigzag Level Order Traversal
2015-08-13 09:43
411 查看
Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from left to right, then right to left for the next level and alternate between).
For example:
Given binary tree
return its zigzag level order traversal as:
For example:
Given binary tree
{3,9,20,#,#,15,7},
3 / \ 9 20 / \ 15 7
return its zigzag level order traversal as:
[ [3], [20,9], [15,7] ] 在level的基础上加一个bool变量来记录是否轮到left_toright.
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: vector<vector<int>> zigzagLevelOrder(TreeNode* root) { vector<vector<int>> result; traversal(root,1,result,true); return result; } void traversal(TreeNode *node,int level,vector<vector<int>> &result,bool left_toright) { if(node==NULL) return; if(level>result.size()) result.push_back(vector<int>()); //不可以缺少 if(left_toright) { result[level-1].push_back(node->val); } else{ result[level-1].insert(result[level-1].begin(),node->val); } traversal(node->left,level+1,result,!left_toright); traversal(node->right,level+1,result,!left_toright); } };
相关文章推荐
- Advanced Fruits(好题,LCS的模拟)
- Linux动态链接库的使用
- 微店和有赞的区别_微店和有赞那个好
- 文章标题 php redis 扩展安装使用 - 有心故我在
- HDU 5375 Gray code (简单dp)
- StringUtils类常用方法介绍
- UVALive 5099 Nubulsa Expo 全局最小割问题
- PHP生成缩略图类
- 复选框样式化综合
- OpenCV partition
- NHibernate3剖析:Configuration篇之SessionFactory lambda配置
- QT 将数组打印到text文本中
- enterasys A4交换机常用命令及ARP分析
- ASP.net MVC+ViewData VS ViewBag
- 【特征匹配】SIFT原理之KD树+BBF算法解析
- 【CSS3 入门教程系列】CSS3 Media Queries 实现响应式设计
- MySQL 杀死指定用户的全部进程
- HDU 1003
- mysql,int(5)、int(10)啥区别联系
- NHibernate3剖析:Configuration篇之Cache lambda-configuration配置