107. Binary Tree Level Order Traversal II
来源:互联网 发布:淘宝画师招聘 编辑:程序博客网 时间:2024/06/05 00:21
Given a binary tree, return the bottom-up level order traversal of its nodes’ values. (i.e, from left to right, level by level from leaf to root).
For example:
Given binary tree [3,9,20,null,null,15,7],
3 / \ 9 20 / \ 15 7
return its bottom-up level order traversal as:
[ [15,7], [9,20], [3]]
题意:
给定一个二叉树,返回由底到顶层次遍历的结果。结果要求为一个二维数组,每层的结果保存在一个一维数组中。
思路:
和102. Binary Tree Level Order Traversal的思路一样,区别只在于最后利用STL的变序算法reverse(),颠倒res的前后顺序。
8ms
class Solution {public: vector<vector<int> > levelOrderBottom(TreeNode *root) { vector<vector<int> > res; if (root == NULL) return res; queue<TreeNode*> q; q.push(root); while (!q.empty()) { vector<int> oneLevel; int size = q.size(); for (int i = 0; i < size; ++i) { TreeNode *node = q.front(); q.pop(); oneLevel.push_back(node->val); if (node->left) q.push(node->left); if (node->right) q.push(node->right); } res.push_back(oneLevel); } reverse(res.begin(),res.end()); return res; }};
和102. Binary Tree Level Order Traversal一样,这道题也可以用递归来求解:
8ms
class Solution {public: vector<vector<int>> levelOrderBottom(TreeNode* root) { vector<vector<int> > res; levelorder(root, 0, res); return vector<vector<int> > (res.rbegin(), res.rend()); } void levelorder(TreeNode *root, int level, vector<vector<int> > &res) { if (!root) return; if (res.size() == level) res.push_back({}); res[level].push_back(root->val); if (root->left) levelorder(root->left, level + 1, res); if (root->right) levelorder(root->right, level + 1, res); }};
0 0
- 107.Binary Tree Level Order Traversal II
- 107. Binary Tree Level Order Traversal II
- 107. Binary Tree Level Order Traversal II
- 107. Binary Tree Level Order Traversal II
- 107. Binary Tree Level Order Traversal II
- 107. Binary Tree Level Order Traversal II
- 107. Binary Tree Level Order Traversal II
- 107. Binary Tree Level Order Traversal II
- 107. Binary Tree Level Order Traversal II
- 107. Binary Tree Level Order Traversal II
- 107. Binary Tree Level Order Traversal II
- 107. Binary Tree Level Order Traversal II
- 107. Binary Tree Level Order Traversal II
- 107. Binary Tree Level Order Traversal II
- 107. Binary Tree Level Order Traversal II
- 107. Binary Tree Level Order Traversal II
- 107. Binary Tree Level Order Traversal II
- 107. Binary Tree Level Order Traversal II
- Struts2关于文件上传的案例
- MyBatis学习总结(五)——实现关联表查询
- 【数据库】SQL模糊查询
- 多重背包问题
- 4.canny边缘检测
- 107. Binary Tree Level Order Traversal II
- Asp.net mvc 动作方法中 调用 另一个控制器的动作方法
- 好的用户界面-界面设计的一些技巧
- 线程之ThreadLocal
- Android自定义捕获Application全局异常
- untiy 简单的shader应用
- 嵌入式学习--step9 IIC学习
- 在 Mac 端获取【网易云音乐】付费音乐的播放地址(注意下载要坚决支持正版!)
- python pygame 复刻小游戏 躲避方块