Python•binary-tree-level-order-traversal-ii/synced-solution.py
class Solution:
def levelOrderBottom(self, root: Optional[TreeNode]) -> List[List[int]]:
if not root:
return []
result = []
queue = [root]
while queue:
level = []
next_queue = []
for node in queue:
level.append(node.val)
if node.left:
next_queue.append(node.left)
if node.right:
next_queue.append(node.right)
result.append(level)
queue = next_queue
return result[::-class="syntax-number">1]
C++•binary-tree-level-order-traversal-ii/synced-solution.cpp
class Solution {
public:
vector<vector<int>> levelOrderBottom(TreeNode* root) {
vector<vector<int>> result;
if (!root) return result;
queue<TreeNode*> q;
q.push(root);
while (!q.empty()) {
vector<int> level;
int size = q.size();
for (int i = class="syntax-number">0; i < size; i++) {
TreeNode* node = q.front();
q.pop();
level.push_back(node->val);
if (node->left) q.push(node->left);
if (node->right) q.push(node->right);
}
result.push_back(level);
}
reverse(result.begin(), result.end());
return result;
}
};
TypeScript•binary-tree-level-order-traversal-ii/synced-solution.ts
function levelOrderBottom(root: TreeNode | null): number[][] {
const result: number[][] = [];
if (!root) return result;
const queue: TreeNode[] = [root];
while (queue.length > class="syntax-number">0) {
const level: number[] = [];
const nextQueue: TreeNode[] = [];
for (const node of queue) {
level.push(node.val);
if (node.left) nextQueue.push(node.left);
if (node.right) nextQueue.push(node.right);
}
result.push(level);
queue.splice(class="syntax-number">0, queue.length, ...nextQueue);
}
return result.reverse();
}