二叉树中和为某一值的路径
解题思路: 递归回溯的解法
1.按照前序方式去遍历(根,左,右)
2.递归处理:
func helper(root *TreeNode , expectNumber int, arr []int, ret *[][]int) { if root == nil { return } arr = append(arr, root.Val) if root.Val == expectNumber && root.Left == nil && root.Right == nil { tmp := make([]int, len(arr)) copy(tmp, arr) *ret = append(*ret, tmp) } helper(root.Left, expectNumber - root.Val, arr, ret) helper(root.Right, expectNumber - root.Val, arr, ret) arr = arr[:len(arr)-1] } func pathSum( root *TreeNode, expectNumber int ) [][]int { if root == nil { return nil } var ret [][]int helper(root, expectNumber, []int{}, &ret) return ret }
原文:https://www.cnblogs.com/dingxiaoqiang/p/14635548.html