题目 -> LC102

解题思路

使用一个容器存储节点然后遍历

c++可以使用vector或者deque

python直接使用list也可以deque

代码

Python

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Solution:
def levelOrder(self, root: Optional[TreeNode]) -> List[List[int]]:
if root == None:
return []
q = []
result = []
q.append(root)
while q:
items = []
res2 = []
for node in q:
res2.append(node.val)
items.append(node.left) if node.left else ...
items.append(node.right) if node.right else ...
q = items
result.append(res2)
return result

C++

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Solution {
public:
vector<vector<int>> levelOrder(TreeNode* root) {
vector<TreeNode*> q;
vector<vector<int>> result;
if (root == NULL) return result;
q.push_back(root);
while (!q.empty()) {
vector<TreeNode*> newq;
vector<int> res2;
for (auto node: q) {
res2.push_back(node->val);
if (node->left) newq.push_back(node->left);
if (node->right) newq.push_back(node->right);
}
q = newq;
result.push_back(res2);
}
return result;
}
};