Skip to content

Commit 3fc4540

Browse files
ycsheukamyu104
authored andcommitted
add Binary Tree Level Order Traversal II C++ solution (kamyu104#74)
* Update README.md * Update README.md * Create maximum-subarray.cpp * Update maximum-subarray.cpp * Create binary-tree-level-order-traversal-ii.cpp * Update README.md
1 parent ffaa9cb commit 3fc4540

File tree

3 files changed

+48
-1
lines changed

3 files changed

+48
-1
lines changed
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
// Time: O(n)
2+
// Space: O(n)
3+
4+
/**
5+
* Definition for a binary tree node.
6+
* struct TreeNode {
7+
* int val;
8+
* TreeNode *left;
9+
* TreeNode *right;
10+
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
11+
* };
12+
*/
13+
class Solution {
14+
public:
15+
vector<vector<int>> levelOrderBottom(TreeNode* root) {
16+
vector<vector<int>> result;
17+
queue<TreeNode *> que;
18+
19+
if (root != nullptr) {
20+
que.emplace(root);
21+
}
22+
23+
while (!que.empty()) {
24+
vector<int> level;
25+
int size = que.size();
26+
for (int i = 0; i < size; i++) {
27+
auto *front = que.front();
28+
que.pop();
29+
level.emplace_back(front->val);
30+
if (front->left != nullptr) {
31+
que.emplace(front->left);
32+
}
33+
if (front->right != nullptr) {
34+
que.emplace(front->right);
35+
}
36+
}
37+
result.emplace_back(move(level));
38+
}
39+
40+
// The only difference between binary-tree-level-order-traversal
41+
// and binary-tree-level-order-traversal-ii
42+
reverse(result.begin(), result.end());
43+
44+
return result;
45+
}
46+
};

C++/maximum-subarray.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ class Solution {
55
public:
66
int maxSubArray(vector<int>& nums) {
77
const auto& max_num = *max_element(nums.cbegin(), nums.cend());
8+
89
if (max_num < 0) {
910
return max_num;
1011
}

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -750,7 +750,7 @@
750750
| # | Title | Solution | Time | Space | Difficulty | Tag | Note|
751751
|-----|---------------- | --------------- | --------------- | --------------- | ------------- |--------------|-----|
752752
0102| [Binary Tree Level Order Traversal](https://leetcode.com/problems/binary-tree-level-order-traversal/)| [C++](./C++/binary-tree-level-order-traversal.cpp) [Python](./Python/binary-tree-level-order-traversal.py)| _O(n)_| _O(n)_| Easy ||
753-
0107| [Binary Tree Level Order Traversal II](https://leetcode.com/problems/binary-tree-level-order-traversal-ii/)| [Python](./Python/binary-tree-level-order-traversal-ii.py) | _O(n)_| _O(n)_| Easy ||
753+
0107| [Binary Tree Level Order Traversal II](https://leetcode.com/problems/binary-tree-level-order-traversal-ii/)| [C++](./C++/binary-tree-level-order-traversal-ii.cpp) [Python](./Python/binary-tree-level-order-traversal-ii.py) | _O(n)_| _O(n)_| Easy ||
754754
0103| [Binary Tree Zigzag Level Order Traversal](https://leetcode.com/problems/binary-tree-zigzag-level-order-traversal/)| [Python](./Python/binary-tree-zigzag-level-order-traversal.py) | _O(n)_| _O(n)_| Medium ||
755755
0117| [Populating Next Right Pointers in Each Node II](https://leetcode.com/problems/populating-next-right-pointers-in-each-node-ii/)|[Python](./Python/populating-next-right-pointers-in-each-node-ii.py)| _O(n)_ | _O(1)_ | Hard ||
756756
0127| [Word Ladder](https://leetcode.com/problems/word-ladder/)|[Python](./Python/word-ladder.py) | _O(n * d)_ | _O(d)_ | Medium ||

0 commit comments

Comments
 (0)