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,#,#,15,7},
3
/ \
9 20
/ \
15 7
return its bottom-up level order traversal as:
[ [15,7] [9,20], [3], ]
confused what "{1,#,2,3}" means? >
read more on how binary tree is serialized on OJ.
對於反轉的操作也是Leetcode慣出的題目,或者說面試慣考的題目,知道怎麼應付就好辦,順序遍歷,然後reverse就可以了。
class Solution {
public:
vector > levelOrderBottom(TreeNode *root)
{
vector > v;
if (!root) return v;
queue qt1;
qt1.push(root);
queue qt2;
vector itmedia;
while (!qt1.empty())
{
while (!qt1.empty())
{
TreeNode *t = qt1.front();
qt1.pop();
itmedia.push_back(t->val);
if (t->left) qt2.push(t->left);
if (t->right) qt2.push(t->right);
}
v.push_back(itmedia);
itmedia.clear();
qt2.swap(qt1);
}
reverse(v.begin(), v.end());
return v;
}
};