Binary Tree Level Order Traversal II LeetCode solution in C++

1
class Solution {
2
void dft(TreeNode *root, int level, map<int, vector<int>, std::greater<int>> &levelVals) {
3
if (root == nullptr) return;
4

5
if (levelVals.find(level) == levelVals.end())
6
levelVals[level] = {root->val};
7
else
8
levelVals[level].push_back(root->val);
9

10
dft(root->left, level + 1, levelVals);
11
dft(root->right, level + 1, levelVals);
12
}
13

14
public:
15
vector<vector<int>> levelOrderBottom(TreeNode *root) {
16
map<int, vector<int>, std::greater<int>> levelVals;
17
dft(root, 0, levelVals);
18

19
vector<vector<int>> res;
20
for (const auto &[level, vals] : levelVals) res.push_back(vals);
21

22
return res;
23
}
24
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0