class Solution {
public:
vector<vector<int>> levelOrderBottom(TreeNode* root) {
if(!root) return {};
vector<vector<int>> ans;
queue<TreeNode*> q;
q.push(root);
while(!q.empty()){
int n = q.size();
vector<int> temp;
for(int i=0;i<n;i++){
// 節點取出
TreeNode* node = q.front();
q.pop();
// 裝進去
temp.push_back(node->val);
// BFS
if (node->left) q.push(node->left);
if (node->right) q.push(node->right);
}
ans.push_back(temp);
}
reverse(ans.begin(), ans.end()); // 最後答案反轉
return ans;
}
};