Path Sum II leetcode java
题目:
Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the given sum.
For example:Given the below binary tree and
sum = 22
,
5 / \ 4 8 / / \ 11 13 4 / \ / \ 7 2 5 1
return
[ [5,4,11,2], [5,8,4,5] ]
题解:
这道题除了要判断是否有这样的一个path sum,还需要把所有的都可能性结果都返回,所以就用传统的DFS递归解决子问题。代码如下:
1 public void pathSumHelper(TreeNode root, int sum, List <Integer> sumlist, List<List<Integer>> pathlist){
2 if(root==null)
3 return;
4 sumlist.add(root.val);
5 sum = sum-root.val;
6 if(root.left==null && root.right==null){
7 if(sum==0){
8 pathlist.add(new ArrayList<Integer>(sumlist));
9 }
10 }else{
11 if(root.left!=null)
12 pathSumHelper(root.left,sum,sumlist,pathlist);
13 if(root.right!=null)
14 pathSumHelper(root.right,sum,sumlist,pathlist);
15 }
16 sumlist.remove(sumlist.size()-1);
17 }
18
19 public List<List<Integer>> pathSum(TreeNode root, int sum) {
20 List<List<Integer>> pathlist=new ArrayList<List<Integer>>();
21 List<Integer> sumlist = new ArrayList<Integer>();
22 pathSumHelper(root,sum,sumlist,pathlist);
23 return pathlist;
24 }
2 if(root==null)
3 return;
4 sumlist.add(root.val);
5 sum = sum-root.val;
6 if(root.left==null && root.right==null){
7 if(sum==0){
8 pathlist.add(new ArrayList<Integer>(sumlist));
9 }
10 }else{
11 if(root.left!=null)
12 pathSumHelper(root.left,sum,sumlist,pathlist);
13 if(root.right!=null)
14 pathSumHelper(root.right,sum,sumlist,pathlist);
15 }
16 sumlist.remove(sumlist.size()-1);
17 }
18
19 public List<List<Integer>> pathSum(TreeNode root, int sum) {
20 List<List<Integer>> pathlist=new ArrayList<List<Integer>>();
21 List<Integer> sumlist = new ArrayList<Integer>();
22 pathSumHelper(root,sum,sumlist,pathlist);
23 return pathlist;
24 }
分类:
leetcode每题整理
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架