6. Binary Tree Level Order Traversal II
Given the root
of a binary tree, return the bottom-up level order traversal of its nodes' values. (i.e., from left to right, level by level from leaf to root).
Example 1:
Input: root = [3,9,20,null,null,15,7]
Output: [[15,7],[9,20],[3]]
Example 2:
Input: root = [1]
Output: [[1]]
Example 3:
Input: root = []
Output: []
Solution: (BFS + DFS)
class Solution
{
public:
vector<vector<int>> levelOrderBottom(TreeNode *root)
{
queue<TreeNode *> q;
stack<vector<int>> st;
vector<vector<int>> res;
if(!root){
return res;
}
q.push(root);
while (!q.empty())
{
int s = q.size();
vector<int> v;
while (s--)
{
TreeNode *t = q.front();
v.push_back(t->val);
q.pop();
if (t->left)
{
q.push(t->left);
}
if (t->right)
{
q.push(t->right);
}
}
st.push(v);
}
while (!st.empty())
{
res.push_back(st.top());
st.pop();
}
return res;
}
};
Last updated
Was this helpful?