简单的递归dfs
package main import . "nc_tools" /* * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */ /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param root TreeNode类 * @param expectNumber int整型 * @return int整型二维数组 */ func FindPath( root *TreeNode , expectNumber int ) [][]int { // write code here res := make([][]int, 0) tmp := make([]int, 0) dfs := func(*TreeNode, int, []int){} dfs = func(node *TreeNode, target int, tmp []int) { if node == nil { return } target -= node.Val tmp = append(tmp, node.Val) if node.Left ==nil && node.Right == nil && target == 0 { res = append(res, append([]int(nil), tmp...)) tmp = tmp[:len(tmp) - 1] return } dfs(node.Left, target, tmp) dfs(node.Right, target, tmp) tmp = tmp[:len(tmp)-1] } dfs(root, expectNumber, tmp) return res }