107. Binary Tree Level Order Traversal II
2015-08-09 21:04
260 查看
Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left to right, level by level from leaf to root).
For example:
Given binary tree
return its bottom-up level order traversal as:
和I差不多,只是需要把最后遍历结果数组翻转一下
For example:
Given binary tree
{3,9,20,#,#,15,7},
3 / \ 9 20 / \ 15 7
return its bottom-up level order traversal as:
[ [15,7] [9,20], [3], ]
和I差不多,只是需要把最后遍历结果数组翻转一下
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: vector<vector<int> > levelOrderBottom(TreeNode *root) { // IMPORTANT: Please reset any member data you declared, as // the same Solution instance will be reused for each test case. vector<vector<int> >res; if(root == NULL)return res; queue<TreeNode*> myqueue; myqueue.push(root); myqueue.push(NULL);//NULL是层与层之间间隔标志 vector<int> level; while(myqueue.empty() == false) { TreeNode *p = myqueue.front(); myqueue.pop(); if(p != NULL) { level.push_back(p->val); if(p->left)myqueue.push(p->left); if(p->right)myqueue.push(p->right); } else { res.push_back(level); if(myqueue.empty() == false) { level.clear(); myqueue.push(NULL); } } } reverse(res.begin(), res.end()); return res; } };
相关文章推荐
- Majority Element:主元素
- 欧拉工程第57题:Square root convergents
- 读书笔记之c和指针(10)
- 集训感悟
- 排序算法之快速排序
- HDOJ1005
- Linux下线程相关知识总结
- 但是,在通过移动数组的上升周期中找到指定元素
- 谈谈SQL 语句的优化技术
- 欧拉工程第56题:Powerful digit sum
- oracle数据库之sql语句使用
- 在Notepad++中搭配Python开发环境(修改版)
- Android中使用SQLiteOpenHelper对SQLite数据库进行增删改查
- 20150804客户sqlserver库查询sql执行慢的问题分析
- 106. Construct Binary Tree from Inorder and Postorder Traversal
- 数据结构复习--java实现单链表基本操作
- Python 3下Matplotlib画图中文显示乱码的解决方法
- java垃圾回收
- 105. Construct Binary Tree from Preorder and Inorder Traversal
- java中String的常用方法