题目链接:LeetCode 113. 路径总和 II
题意:
给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。
解题思路:
与LeetCode 112. 路径总和相似,在遍历过程中,记录遍历过的每一个点即可。
递归法
递归代码:
var res [][]int
var path []int
func pathSum(root *TreeNode, targetSum int) [][]int {
res = [][]int{}
path = []int{}
dfs(root,targetSum)
return res
}
func dfs(root *TreeNode,targetSum int){
if root == nil {
return
}
path = append(path,root.Val)
targetSum -= root.Val
if root.Left == nil && root.Right == nil && targetSum == 0{
// 注意这里不可以直接 res=append(res, path)
var temp []int
for _,v :=range path {
temp = append(temp,v)
}
res=append(res, temp)
}
dfs(root.Left,targetSum)
dfs(root.Right,targetSum)
path = path[:len(path)-1]
}
标签:int,res,dfs,II,targetSum,113,path,root,LeetCode
From: https://www.cnblogs.com/lxing-go/p/17416399.html