思路就不说啦,以后有时间补,只是作为一个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]
}


京公网安备 11010502036488号