File tree 1 file changed +14
-21
lines changed
Algorithms/0437.path-sum-iii
1 file changed +14
-21
lines changed Original file line number Diff line number Diff line change @@ -7,37 +7,30 @@ import (
7
7
type TreeNode = kit.TreeNode
8
8
9
9
func pathSum (root * TreeNode , sum int ) int {
10
+ if root == nil {
11
+ return 0
12
+ }
13
+
10
14
res := 0
11
- path := []int {}
12
15
13
- var dfs func (* TreeNode , int , int )
14
- dfs = func (node * TreeNode , level , sum int ) {
16
+ var dfs func (* TreeNode , int )
17
+ dfs = func (node * TreeNode , sum int ) {
15
18
if node == nil {
16
19
return
17
20
}
18
21
19
- // 根据 level 来更新 path
20
- if level >= len (path ) {
21
- path = append (path , node .Val )
22
- } else {
23
- path [level ] = node .Val
24
- }
25
22
sum -= node .Val
26
-
27
- // 到达 leaf
28
- // 并且,此条路径符合要求
29
- if node .Left == nil && node .Right == nil && sum == 0 {
30
- temp := make ([]int , level + 1 )
31
- // copy 不会复制 path[len(temp):],如果 len(path) > len(temp) 的话
32
- copy (temp , path )
33
- res = append (res , temp )
23
+ if sum == 0 {
24
+ res ++
34
25
}
35
26
36
- dfs (node .Left , level + 1 , sum )
37
- dfs (node .Right , level + 1 , sum )
27
+ dfs (node .Left , sum )
28
+ dfs (node .Right , sum )
38
29
}
39
30
40
- dfs (root , 0 , sum )
31
+ dfs (root , sum )
41
32
42
- return res
33
+ return res +
34
+ pathSum (root .Left , sum ) +
35
+ pathSum (root .Right , sum )
43
36
}
You can’t perform that action at this time.
0 commit comments