107. Binary Tree Level Order Traversal II
来源:互联网 发布:淘宝申请开网店要多久 编辑:程序博客网 时间:2024/06/08 10:35
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 [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题的做法是一样的,只是把上一题结果翻转一下就可以了。代码如下,注释内为递归版本。
Code:
/** * 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; levelOrderBottom(root, 1, result); reverse(result.begin(), result.end()); return result; } void levelOrderBottom(TreeNode *root, int level, vector<vector<int> > &result) { if (!root) { return; } if (result.size() < level) { result.push_back(vector<int>()); } result[level - 1].push_back(root -> val); levelOrderBottom(root -> left, level + 1, result); levelOrderBottom(root -> right, level + 1, result); }*/ vector<vector<int>> levelOrderBottom(TreeNode* root) { vector<vector<int>> result; queue<TreeNode *> current, next; if (!root) { return result; } else { current.push(root); } TreeNode *pointer = root; while (!current.empty()) { vector<int> temp; while (!current.empty()) { pointer = current.front(); current.pop(); temp.push_back(pointer -> val); if (pointer -> left) { next.push(pointer -> left); } if (pointer -> right) { next.push(pointer -> right); } } result.push_back(temp); swap(current, next); } reverse(result.begin(), result.end()); return result; }};
阅读全文
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
- thinkphp5加解密方法
- eclipse怎么全选jar包
- 多线程之初步:隔一秒打印一个,输入s停止
- Java JVM 2: 锁优化
- 应用上悬浮的快速启动菜单
- 107. Binary Tree Level Order Traversal II
- Boost库迭代器
- Kafka 几个实现细节
- TensorFlow初学(一)
- win7系统thumbs.db文件怎么彻底删除
- jsp中iframe在子页面和父页面之间传值
- oracle各个版本下载(官网要登录,复制链接迅雷下载)
- 回调函数的C++实现
- hibernate入门