当前位置: 首页 > news >正文

113:路径总和 II

题目:

给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。

叶子节点 是指没有子节点的节点。

解答:

用 go主要坑有两个,一个是二维结果切片传递用指针,一个是临时路径结果每次不共享切片底层数组,并且还需要注意数据顺序性。

教训:切片值传递,复制结构头,共享底层数组,可见数据可能会被改变,需要每次重新申请新切片。

/*** Definition for a binary tree node.* type TreeNode struct {*     Val int*     Left *TreeNode*     Right *TreeNode* }*/import("fmt")
func pathSum(root *TreeNode, targetSum int) [][]int {if root == nil {return [][]int{}}res := make([][]int, 0)path(root, []int{root.Val}, root.Val, targetSum, &res)return res
}
func path(root *TreeNode, cur []int, sum int, targetSum int, res *[][]int) {if root.Left == nil && root.Right == nil {if sum == targetSum {*res = append(*res, cur)//fmt.Printf("----%v",res)  //调试打印return}return}if root.Left != nil {curl := append([]int{}, cur... )   //顺序性curl = append(curl, root.Left.Val)path(root.Left, curl, sum+root.Left.Val, targetSum, res)}if root.Right != nil {curr := append([]int{}, cur...)curr = append(curr, root.Right.Val)path(root.Right, curr, sum+root.Right.Val, targetSum, res)}
}

http://www.lryc.cn/news/591011.html

相关文章:

  • Java学习--JVM(2)
  • 基于FPGA的IIC控制EEPROM读写(2)
  • AI算法之图像识别与分类
  • 深入理解Java中的Collections.max()方法
  • 贪心算法(排序)
  • GLM(General Language Model,通用语言模型)
  • 2020717零碎写写
  • 学习OpenCV---显示图片
  • Java集合框架中List常见问题
  • Python爬虫实战:Requests与Selenium详解
  • ESLint 完整功能介绍和完整使用示例演示
  • 产品经理如何描述用户故事
  • Rocky Linux 9 源码包安装php7
  • API开发提速新方案:SmartBear API Hub与ReadyAPI虚拟化整合实践
  • 学习日志预告
  • 学习设计模式《十八》——备忘录模式
  • ThinkPHP8 Windows开发全流程:从搭建到上线
  • TASK01【datawhale组队学习】地瓜机器人具身智能概述
  • 设计模式笔记_结构型_装饰器模式
  • 【后端】.NET Core API框架搭建(9) --配置使用Log4Net日志
  • 人工智能之数学基础:概率论和数理统计在机器学习的地位
  • 使用Proxy设计模式来增强类的功能:ToastProxy和DesktopToast的设计关系
  • 力扣119:杨辉三角Ⅱ
  • UGUI 性能优化系列:第一篇——基础优化与资源管理
  • 取消office word中的段落箭头标记
  • 【图像处理基石】如何入门色彩评估?
  • Python暑期学习笔记3
  • Redis:哨兵(Sentinel)
  • 20250717 Ubuntu 挂载远程 Windows 服务器上的硬盘
  • 7.事务操作