题目描述
Go实现,思路和C++一样,然而go的数组需要深拷贝
样例
var res [][]int
func findPath(root *TreeNode, sum int) [][]int {
dfs(root, sum, []int{})
return res
}
func dfs(root *TreeNode, sum int, path []int) {
if root == nil {
return
}
sum -= root.Val
path = append(path, root.Val)
if sum == 0 && root.Left == nil && root.Right == nil {
newPath := make([]int, len(path))
copy(newPath, path)
res = append(res, newPath)
}
dfs(root.Left, sum, path)
dfs(root.Right, sum, path)
}