算法-01-二叉树根节点到叶子节点和为指定值的路径
描述
给定一个二叉树和一个值sum,请找出所有的根节点到叶子节点的节点值之和等于sum 的路径, 例如: 给出如下的二叉树,sum=22
Java
import java.util.*; /* * public class TreeNode { * int val = 0; * TreeNode left = null; * TreeNode right = null; * } */ public class Solution { /** * * @param root TreeNode类 * @param sum int整型 * @return int整型ArrayList<ArrayList<>> */ ArrayList<ArrayList<Integer>> results= new ArrayList<>(); public ArrayList<ArrayList<Integer>> pathSum (TreeNode root, int sum) { // write code here ArrayList<Integer> path =new ArrayList<>(); if(root==null) return results; dfs(root,0,sum,path); return results; } public void dfs(TreeNode root,int nowSum, int sum, ArrayList<Integer> list){ list.add(root.val); if(root.right==null&&root.left==null&&sum==nowSum+root.val){ results.add(new ArrayList<>(list)); return; } if(root.left!=null){ dfs(root.left,nowSum+root.val,sum,list); list.remove(list.size()-1); } if(root.right!=null){ dfs(root.right, nowSum+root.val,sum,list); list.remove(list.size()-1); } } }
Python
# class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None # # # @param root TreeNode类 # @param sum int整型 # @return int整型二维数组 # class Solution: def pathSum(self , root , sum ): # write code here path = [] paths = [] self.dfs(root,sum,path,paths) return paths def dfs(self, root: TreeNode, sum :int, path: list, paths: list): if root is None: return None path.append(root.val) if root.left is None and root.right is None and sum==root.val: paths.append(path.copy()) else: self.dfs(root.left,sum-root.val,path,paths) self.dfs(root.right,sum-root.val,path,paths) path.pop(len(path)-1)
不要小瞧女程序员
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
2019-07-19 13. VUE 组件之间数据传递