标签:TreeNode int 路径 II ways ans now stack 总和
https://leetcode.cn/problems/path-sum-ii/
/** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */ func pathSum(root *TreeNode, targetSum int) [][]int { stack:=make([]int,0) ways=make([][]int,0) dfs(root,0,targetSum,stack) return ways } var ways [][]int func dfs(now *TreeNode,ans,target int,stack []int){ if now==nil{//递归出口,可能有正数,也可能有负数 return } ans=ans+now.Val stack=append(stack,now.Val) if ans==target&&now.Left==nil&&now.Right==nil{//只有到叶子节点,并且和为target才可以 tmp:=make([]int,len(stack)) copy(tmp,stack) ways=append(ways,tmp) } dfs(now.Left,ans,target,stack) dfs(now.Right,ans,target,stack) ans=ans-now.Val stack=stack[:len(stack)-1] }
标签:TreeNode,int,路径,II,ways,ans,now,stack,总和 来源: https://www.cnblogs.com/-citywall123/p/16425057.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。