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; } };