概述
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] ]
/**
* 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>> ret;
if(NULL == root)
return ret;
queue<TreeNode *> q;
q.push(root);
while(!q.empty())
{
vector<int> level;
for(int i = 0, n = q.size(); i < n; ++ i)
{
TreeNode *temp = q.front();
q.pop();
if(temp -> left != NULL)
q.push(temp -> left);
if(temp -> right != NULL)
q.push(temp -> right);
level.push_back(temp -> val);
}
ret.push_back(level);
}
reverse(ret.begin(), ret.end());
return ret;
}
};
* 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>> ret;
if(NULL == root)
return ret;
queue<TreeNode *> q;
q.push(root);
while(!q.empty())
{
vector<int> level;
for(int i = 0, n = q.size(); i < n; ++ i)
{
TreeNode *temp = q.front();
q.pop();
if(temp -> left != NULL)
q.push(temp -> left);
if(temp -> right != NULL)
q.push(temp -> right);
level.push_back(temp -> val);
}
ret.push_back(level);
}
reverse(ret.begin(), ret.end());
return ret;
}
};
最后
以上就是从容大船为你收集整理的Binary Tree Level Order Traversal II的全部内容,希望文章能够帮你解决Binary Tree Level Order Traversal II所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复