Skip to content

Commit 1357541

Browse files
authored
Merge pull request halfrost#144 from novahe/fix/199
fix/199: clean up redundant code
2 parents 3dac8b9 + 9e35754 commit 1357541

File tree

2 files changed

+24
-44
lines changed

2 files changed

+24
-44
lines changed

leetcode/0199.Binary-Tree-Right-Side-View/199. Binary Tree Right Side View.go

Lines changed: 12 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -17,33 +17,23 @@ type TreeNode = structures.TreeNode
1717
*/
1818

1919
func rightSideView(root *TreeNode) []int {
20+
res := []int{}
2021
if root == nil {
21-
return []int{}
22+
return res
2223
}
23-
queue := []*TreeNode{}
24-
queue = append(queue, root)
25-
curNum, nextLevelNum, res, tmp := 1, 0, []int{}, []int{}
26-
for len(queue) != 0 {
27-
if curNum > 0 {
28-
node := queue[0]
29-
if node.Left != nil {
30-
queue = append(queue, node.Left)
31-
nextLevelNum++
24+
queue := []*TreeNode{root}
25+
for len(queue) > 0 {
26+
n := len(queue)
27+
for i := 0; i < n; i++ {
28+
if queue[i].Left != nil {
29+
queue = append(queue, queue[i].Left)
3230
}
33-
if node.Right != nil {
34-
queue = append(queue, node.Right)
35-
nextLevelNum++
31+
if queue[i].Right != nil {
32+
queue = append(queue, queue[i].Right)
3633
}
37-
curNum--
38-
tmp = append(tmp, node.Val)
39-
queue = queue[1:]
40-
}
41-
if curNum == 0 {
42-
res = append(res, tmp[len(tmp)-1])
43-
curNum = nextLevelNum
44-
nextLevelNum = 0
45-
tmp = []int{}
4634
}
35+
res = append(res, queue[n-1].Val)
36+
queue = queue[n:]
4737
}
4838
return res
4939
}

website/content/ChapterFour/0100~0199/0199.Binary-Tree-Right-Side-View.md

Lines changed: 12 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -50,33 +50,23 @@ package leetcode
5050
* }
5151
*/
5252
func rightSideView(root *TreeNode) []int {
53+
res := []int{}
5354
if root == nil {
54-
return []int{}
55+
return res
5556
}
56-
queue := []*TreeNode{}
57-
queue = append(queue, root)
58-
curNum, nextLevelNum, res, tmp := 1, 0, []int{}, []int{}
59-
for len(queue) != 0 {
60-
if curNum > 0 {
61-
node := queue[0]
62-
if node.Left != nil {
63-
queue = append(queue, node.Left)
64-
nextLevelNum++
57+
queue := []*TreeNode{root}
58+
for len(queue) > 0 {
59+
n := len(queue)
60+
for i := 0; i < n; i++ {
61+
if queue[i].Left != nil {
62+
queue = append(queue, queue[i].Left)
6563
}
66-
if node.Right != nil {
67-
queue = append(queue, node.Right)
68-
nextLevelNum++
64+
if queue[i].Right != nil {
65+
queue = append(queue, queue[i].Right)
6966
}
70-
curNum--
71-
tmp = append(tmp, node.Val)
72-
queue = queue[1:]
73-
}
74-
if curNum == 0 {
75-
res = append(res, tmp[len(tmp)-1])
76-
curNum = nextLevelNum
77-
nextLevelNum = 0
78-
tmp = []int{}
7967
}
68+
res = append(res, queue[n-1].Val)
69+
queue = queue[n:]
8070
}
8171
return res
8272
}

0 commit comments

Comments
 (0)