最新新聞熱點事件2024摘抄優(yōu)化大師好用嗎
文章目錄
- 題目描述
- 題解思路
- 題解代碼
題目描述
題解思路
深度優(yōu)先遍歷二叉樹,遍歷的同時記錄路徑,直到遍歷到葉節(jié)點,若路徑和為targetSum則添加到結(jié)果集中
題解代碼
func pathSum(root *TreeNode, targetSum int) [][]int {var res = make([][]int, 0)path := make([]int, 0, 1)var sum func(root *TreeNode, targetSum int)sum = func (root *TreeNode, targetSum int) {if root == nil {return}targetSum -= root.Valpath = append(path, root.Val)defer func() { path = path[:len(path)-1] }()if root.Left == nil && root.Right == nil && targetSum == 0 {res = append(res, append([]int{}, path...))return}sum(root.Left, targetSum)sum(root.Right, targetSum)}sum(root, targetSum)return res
}