LeetCode之Binary Tree Level Order Traversal II
来源:互联网 发布:php use和include区别 编辑:程序博客网 时间:2024/06/03 20:19
本题的目标是对于一个由整数组成的二叉树,从底向上逐层将每层的整数输出出来,每层的整数表示为一个整数数组。我使用广度优先搜索算法(BFS)来解决这个问题。如果二叉树为空,则返回的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>> result;if (root == NULL) {return result;} else {vector<int> a;vector<TreeNode*> b;vector<vector<TreeNode*>> c;a.push_back(root -> val);result.push_back(a);b.push_back(root);c.push_back(b);for (int j = 0; j < c.size(); ++j) {vector<TreeNode*> nextLevel;for (int i = 0; i < c[j].size(); ++i) {if (c[j][i] -> left != NULL) {nextLevel.push_back(c[j][i] -> left);}if (c[j][i] -> right != NULL) {nextLevel.push_back(c[j][i] -> right);}}if (nextLevel.size() == 0) {break;}c.push_back(nextLevel);vector<int> next;for (int i = 0; i < nextLevel.size(); ++i) {next.push_back(nextLevel[i] -> val);}result.push_back(next);}vector<vector<int>> reverse;for (int i = result.size() - 1; i >= 0; --i) {reverse.push_back(result[i]);}return reverse;} }};
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
- docker容器centos中安装mysql
- 函数模板
- EL表达式和JSTL表达式
- PAT 1036 Boys vs Girls (25)
- java将汉字改成对应首字母
- LeetCode之Binary Tree Level Order Traversal II
- 【513】 Find Bottom Left Tree Value
- Maximum Gap
- 【Eclipse】配置MySQL
- 测试
- WA之codeforces之144B
- JS中innerHTML与value、val的用法区别
- 总结套路:Ajax请求下载文件的问题
- 关于java线程池