思路就不说啦,以后有时间补,只是作为一个go的初学者,在这里找不到go的实现,所以尝试留点东西
package main import . "nc_tools" /* * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */ /** * * @param root TreeNode类 * @param sum int整型 * @return int整型二维数组 */ var result = make([][]int, 0, 0) func pathSum( root *TreeNode , sum int ) [][]int { // write code here var items []int backtrack(items, sum, root) return result } func backtrack(items []int, sum int, node *TreeNode) { if node == nil { return } if node.Left == nil && node.Right == nil && node.Val == sum { items = append(items, node.Val) var temp = make([]int, len(items)) copy(temp, items) result = append(result, temp) return } items = append(items, node.Val) backtrack(items, sum - node.Val, node.Left) backtrack(items, sum - node.Val, node.Right) items = items[:len(items) - 1] }