leetCode #107 Binary Tree Level Order Traversal II
来源:互联网 发布:linux ps -ef|grep命令 编辑:程序博客网 时间:2024/05/29 10:08
题目:遍历二叉树,从下到上,从左到右
分析:这个跟之前的从上到下,从左到右的层序遍历是姊妹篇。
答案:
先回顾一下原先的层序遍历(把下层节点弄到队列里保存起来)
/** * 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>> levelOrder(TreeNode* root) { vector<vector<int>> res; queue<TreeNode*> thisq; if (!root) return res; thisq.push(root); do{ vector<int> thisline; queue<TreeNode*> nextq; while(!thisq.empty()){ thisline.push_back(thisq.front()->val); if (thisq.front()->left) nextq.push(thisq.front()->left); if (thisq.front()->right) nextq.push(thisq.front()->right); thisq.pop(); } res.push_back(thisline); thisq = nextq; }while(!thisq.empty()); return res; }};
然后把vector反转一下:
/** * 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>> levelOrderBottom(TreeNode* root) { vector<vector<int>> res; vector<vector<int>> res_inv; queue<TreeNode*> thisq; if (!root) return res; thisq.push(root); do{ vector<int> thisline; queue<TreeNode*> nextq; while(!thisq.empty()){ thisline.push_back(thisq.front()->val); if (thisq.front()->left) nextq.push(thisq.front()->left); if (thisq.front()->right) nextq.push(thisq.front()->right); thisq.pop(); } res.push_back(thisline); thisq = nextq; }while(!thisq.empty()); for (int i = 0; i< res.size(); i++){ res_inv.push_back(res[res.size() - i - 1]); } return res_inv; }};
runtime: 16ms;
0 0
- LeetCode: Binary Tree Level Order Traversal II
- [LeetCode]Binary Tree Level Order Traversal II
- LeetCode Binary Tree Level Order Traversal II
- [Leetcode] Binary Tree Level Order Traversal II
- LeetCode Binary Tree Level Order Traversal II
- [LeetCode] Binary Tree Level Order Traversal II
- 【leetcode】Binary Tree Level Order Traversal II
- [LeetCode]Binary Tree Level Order Traversal II
- [Leetcode]Binary Tree Level Order Traversal II
- [leetcode]Binary Tree Level Order Traversal II
- LeetCode-Binary Tree Level Order Traversal II
- LeetCode - Binary Tree Level Order Traversal II
- [LeetCode] Binary Tree Level Order Traversal II
- LeetCode | Binary Tree Level Order Traversal II
- LeetCode - Binary Tree Level Order Traversal II
- 【leetcode】Binary Tree Level Order Traversal II
- 【LeetCode】Binary Tree Level Order Traversal II
- [LeetCode] Binary Tree Level Order Traversal II
- Hibernate 原生SQL查询反射到POJO
- Netty的UDP及广播实现
- 电池充电方式
- stretchableImageWithLeftCapWidth
- 随机验证码的生成
- leetCode #107 Binary Tree Level Order Traversal II
- linux随笔2:文件系统的特性
- 最短路径算法
- 设计模式学习之--策略模式
- 《序列》游戏攻略【37~42】
- 常用的shell命令汇总,夯实Linux基础
- 文章标题
- 文本编辑器EditPlus
- android工程更改api版本