博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
剑指offer-二叉树中和为某一值的路径
阅读量:4325 次
发布时间:2019-06-06

本文共 1901 字,大约阅读时间需要 6 分钟。

题目描述

输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前)
 
使用dfs
1 public class Solution {//dfs 树 my 2     ArrayList
> re ; 3 public ArrayList
> FindPath(TreeNode root,int target) { 4 re = new ArrayList<>(); 5 if(root!=null){ 6 dfs(root,new ArrayList
(),target,0); 7 } 8 return re; 9 }10 public void dfs(TreeNode root ,ArrayList
list,int target,int sum){11 if(root.left==null&&root.right==null){12 if((sum+root.val)==target){13 //添加路径14 ArrayList l =new ArrayList
(list);15 l.add(root.val);16 re.add(l);17 return;18 }19 return;20 }21 sum +=root.val;22 list.add(root.val);23 if(root.left!=null){24 dfs(root.left,list,target,sum);25 }26 if(root.right!=null){27 dfs(root.right,list,target,sum);28 }29 sum-=root.val;30 list.remove(list.size()-1);31 return ;32 }33 }

 

其中和可简化为一个参数,如下

1 public class Solution { 2     ArrayList
> re ; 3 public ArrayList
> FindPath(TreeNode root,int target) { 4 re = new ArrayList<>(); 5 if(root!=null){ 6 dfs(root,new ArrayList
(),target); 7 } 8 return re; 9 }10 public void dfs(TreeNode root ,ArrayList
list,int target){11 if(root.left==null&&root.right==null){12 if(root.val==target){13 //添加路径14 ArrayList l =new ArrayList
(list);15 l.add(root.val);16 re.add(l);17 return;18 }19 return;20 }21 list.add(root.val);22 if(root.left!=null){23 dfs(root.left,list,target-root.val);24 }25 if(root.right!=null){26 dfs(root.right,list,target-root.val);27 }28 list.remove(list.size()-1);29 return ;30 }31 }

 

转载于:https://www.cnblogs.com/zhacai/p/10695818.html

你可能感兴趣的文章
玩转webpack之webpack的entry output
查看>>
java 操作mongodb查询条件的常用设置
查看>>
黑马程序员_java基础笔记(02)...java语言基础组成
查看>>
对innodb 拷贝文件实现数据库的方式(转)
查看>>
python知识点 2014-07-09
查看>>
FloatingActionButton的一点学习感悟
查看>>
ABAP CDS ON HANA-(10)項目結合して一つ項目として表示
查看>>
网站地址信息
查看>>
产品经理 - 登录 注册
查看>>
小白的python进阶历程------05.占位符
查看>>
CF414BMashmokh and ACMDP
查看>>
Notepad++ 通过g++编译
查看>>
JAVA基础2——类初始化相关执行顺序
查看>>
转:Zend Framework 重定向方法(render, forward, redirect)
查看>>
Linux下查看磁盘与目录的容量——df、du
查看>>
关于日记app的思考
查看>>
使用sencha的cmd创建项目时提示找不到\Sencha\Cmd\repo\.sencha\codegen.json
查看>>
如何快速启动一个Java Web编程框架
查看>>
MSP430单片机存储器结构总结
查看>>
文本框过滤特殊符号
查看>>