Skip to content

Commit 87bb69b

Browse files
committedDec 31, 2022
feat: add solutions to lc problem: No.0102
No.0102.Binary Tree Level Order Traversal
1 parent 5c6efdc commit 87bb69b

File tree

4 files changed

+33
-27
lines changed

4 files changed

+33
-27
lines changed
 

‎solution/0100-0199/0102.Binary Tree Level Order Traversal/README.md

+17-9
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,15 @@
4646

4747
**方法一:BFS**
4848

49+
我们可以使用 BFS 的方法来解决这道题。首先将根节点入队,然后不断地进行以下操作,直到队列为空:
50+
51+
- 遍历当前队列中的所有节点,将它们的值存储到一个临时数组 $t$ 中,然后将它们的孩子节点入队。
52+
- 将临时数组 $t$ 存储到答案数组中。
53+
54+
最后返回答案数组即可。
55+
56+
时间复杂度 $O(n)$,空间复杂度 $O(n)$。其中 $n$ 是二叉树的节点个数。
57+
4958
<!-- tabs:start -->
5059

5160
### **Python3**
@@ -60,10 +69,10 @@
6069
# self.left = left
6170
# self.right = right
6271
class Solution:
63-
def levelOrder(self, root: TreeNode) -> List[List[int]]:
64-
if root is None:
65-
return []
72+
def levelOrder(self, root: Optional[TreeNode]) -> List[List[int]]:
6673
ans = []
74+
if root is None:
75+
return ans
6776
q = deque([root])
6877
while q:
6978
t = []
@@ -172,14 +181,13 @@ public:
172181
* Right *TreeNode
173182
* }
174183
*/
175-
func levelOrder(root *TreeNode) [][]int {
176-
var ans [][]int
184+
func levelOrder(root *TreeNode) (ans [][]int) {
177185
if root == nil {
178-
return ans
186+
return
179187
}
180-
var q = []*TreeNode{root}
188+
q := []*TreeNode{root}
181189
for len(q) > 0 {
182-
var t []int
190+
t := []int{}
183191
for n := len(q); n > 0; n-- {
184192
node := q[0]
185193
q = q[1:]
@@ -193,7 +201,7 @@ func levelOrder(root *TreeNode) [][]int {
193201
}
194202
ans = append(ans, t)
195203
}
196-
return ans
204+
return
197205
}
198206
```
199207

‎solution/0100-0199/0102.Binary Tree Level Order Traversal/README_EN.md

+8-9
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,10 @@ BFS.
5252
# self.left = left
5353
# self.right = right
5454
class Solution:
55-
def levelOrder(self, root: TreeNode) -> List[List[int]]:
56-
if root is None:
57-
return []
55+
def levelOrder(self, root: Optional[TreeNode]) -> List[List[int]]:
5856
ans = []
57+
if root is None:
58+
return ans
5959
q = deque([root])
6060
while q:
6161
t = []
@@ -162,14 +162,13 @@ public:
162162
* Right *TreeNode
163163
* }
164164
*/
165-
func levelOrder(root *TreeNode) [][]int {
166-
var ans [][]int
165+
func levelOrder(root *TreeNode) (ans [][]int) {
167166
if root == nil {
168-
return ans
167+
return
169168
}
170-
var q = []*TreeNode{root}
169+
q := []*TreeNode{root}
171170
for len(q) > 0 {
172-
var t []int
171+
t := []int{}
173172
for n := len(q); n > 0; n-- {
174173
node := q[0]
175174
q = q[1:]
@@ -183,7 +182,7 @@ func levelOrder(root *TreeNode) [][]int {
183182
}
184183
ans = append(ans, t)
185184
}
186-
return ans
185+
return
187186
}
188187
```
189188

‎solution/0100-0199/0102.Binary Tree Level Order Traversal/Solution.go

+5-6
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,13 @@
66
* Right *TreeNode
77
* }
88
*/
9-
func levelOrder(root *TreeNode) [][]int {
10-
var ans [][]int
9+
func levelOrder(root *TreeNode) (ans [][]int) {
1110
if root == nil {
12-
return ans
11+
return
1312
}
14-
var q = []*TreeNode{root}
13+
q := []*TreeNode{root}
1514
for len(q) > 0 {
16-
var t []int
15+
t := []int{}
1716
for n := len(q); n > 0; n-- {
1817
node := q[0]
1918
q = q[1:]
@@ -27,5 +26,5 @@ func levelOrder(root *TreeNode) [][]int {
2726
}
2827
ans = append(ans, t)
2928
}
30-
return ans
29+
return
3130
}

‎solution/0100-0199/0102.Binary Tree Level Order Traversal/Solution.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@
55
# self.left = left
66
# self.right = right
77
class Solution:
8-
def levelOrder(self, root: TreeNode) -> List[List[int]]:
9-
if root is None:
10-
return []
8+
def levelOrder(self, root: Optional[TreeNode]) -> List[List[int]]:
119
ans = []
10+
if root is None:
11+
return ans
1212
q = deque([root])
1313
while q:
1414
t = []

0 commit comments

Comments
 (0)