比如这样的递归,递归函数的值类型是切片,会有什么样的后果呢,是一个好的实践吗?
```go
func doCountPairs(node *TreeNode, sum *int, dist int) []int {
if node == nil {
return []int{}
}
if node.Left == nil && node.Right == nil {
return []int{1}
}
lpath := doCountPairs(node.Left, sum, dist)
rpath := doCountPairs(node.Right, sum, dist)
for _, vl := range lpath {
for _, vr := range rpath {
if vl + vr <= dist {
(*sum)++
}
}
}
for i := 0; i < len(lpath); i++ {
lpath[i]++
}
for j := 0; j < len(rpath); j++ {
rpath[j]++
}
return append(lpath, rpath...)
}
```
有疑问加站长微信联系(非本文作者)