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

python -二叉树路径和为指定的值(根节点到叶子节点)

二叉树

  • 一、树前序遍历
  • 二、递归

一、树前序遍历

  • 前序遍历:
    • 获取所有的路径;
  • 对所有的路径处理,获取每一条路径的和,输出符合条件的路径

二、递归

# 二叉树的节点的属性
class TreeNode:def __init__(self, x):self.val = xself.left = Noneself.right = None
class Solution:# 前序遍历的方式def preOrder(self, root: TreeNode, target: int) -> List[List[int]]:arr = []def dfs(root, path):if not root:returnif root.left == None and root.right == None:arr.append(path)returnif root.left:dfs(root.left, path + [root.left.val])if root.right:dfs(root.right, path + [root.right.val])returndfs(root, [root.val])_arr = []for tmp in arr:if sum(tmp) == target:_arr.append(tmp)return _arr# 递归def dfs(self, root: TreeNode, sum1: int, path: List[int]) -> List[List[int]]:arr = []def preOrder(root, sum1, path):if not root:returnif root.left == None and root.right == None and sum1 == root.val:arr.append(path)returnif root.left == None and root.right == None:returnif root.left:preOrder(root.left, sum1 - root.val, path + [root.left.val])if root.right:preOrder(root.right, sum1 - root.val, path + [root.right.val])returnpreOrder(root, sum1, [root.val])return arrdef FindPath(self, root: TreeNode, target: int) -> List[List[int]]:# write code hereif not root:return []return self.preOrder(root, target)          # 前序遍历return self.dfs(root, target, [root.val])   # 递归   		
http://www.xdnf.cn/news/1080109.html

相关文章:

  • 译码器Multisim电路仿真汇总——硬件工程师笔记
  • 【机器学习深度学习】什么是下游任务模型?
  • 【STM32实践篇】:I2C驱动编写
  • 【模糊集合】示例
  • 【机器学习深度学习】AI 项目开发流程:从需求到部署的五大阶段
  • 机器学习安装使用教程
  • Python训练营打卡Day59(2025.7.3)
  • java教程——初识guava(2)
  • 这才叫窗口查询!TDEngine官方文档没讲透的实战玩法
  • 认识kubernetes kubeadm安装k8s
  • Web基础关键_007_JavaScript 的 DOM
  • 34. 在排序数组中查找元素的第一个和最后一个位置
  • WPF学习笔记(22)项面板模板ltemsPanelTemplate与三种模板总结
  • 【进阶篇-消息队列】——Kafka如何实现事务的
  • R 语言安装使用教程
  • 物联网MQTT协议与实践:从零到精通的硬核指南
  • 【2.4 漫画SpringBoot实战】
  • Java的SpringAI+Deepseek大模型实战之会话记忆
  • Qt Creator自定义控件开发流程
  • Windows 10 2016 长期服务版
  • WPF学习笔记(16)树控件TreeView与数据模板
  • 刷卡登入数据获取
  • MySQL的窗口函数介绍
  • Redis—哨兵模式
  • 相机光学(四十八)——渐晕
  • [自然语言处理]计算语言的熵
  • Qt宝藏库:20+实用开源项目合集
  • ReentrantLock 原理
  • Euler2203安装.NetCore6.0环境操作步骤
  • 前端单元测试覆盖率工具有哪些,分别有什么优缺点