题目:
给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。
叶子节点 是指没有子节点的节点。
解法:
试试不copy list用默认测试用例会错误。
var ans [][]int
func pathSum(root *TreeNode, targetSum int) [][]int {
ans = make([][]int, 0)
list := make([]int, 0)
getPathSum(root, targetSum, list)
return ans
}
func getPathSum(root *TreeNode, targetSum int, list []int) {
if root == nil {
return
}
list = append(list, root.Val)
if root.Left == nil && root.Right == nil && root.Val == targetSum {
l := make([]int, len(list))
copy(l, list)
// fmt.Println("append", list)
ans = append(ans, l)
return
}
getPathSum(root.Left, targetSum-root.Val, list)
getPathSum(root.Right, targetSum-root.Val, list)
return
}