剑指offer: 二叉树中和为某一值的路径
题目描述
输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。
注意在深度遍历的时候要回退结点
import java.util.*;public class Pathtree {public static void main(String[] args) {TreeNode root=new TreeNode(3);TreeNode node1=new TreeNode(2);TreeNode node2=new TreeNode(5);TreeNode node3=new TreeNode(6);TreeNode node4=new TreeNode(9);root.left=node1;root.right=node2;node1.left=node4;node2.right=node3;Pathtree pos=new Pathtree();ArrayList<ArrayList<Integer>> arr=pos.FindPath(root,14);System.out.println(arr);}public ArrayList<ArrayList<Integer>> FindPath(TreeNode root,int target) {ArrayList<ArrayList<Integer>> arr=new ArrayList<ArrayList<Integer>>();ArrayList<Integer> list=new ArrayList<Integer>();if(root==null) return arr;int sum=0;path(root,target,arr,list,sum);return arr;}public void path(TreeNode root,int target,ArrayList<ArrayList<Integer>> arr, ArrayList<Integer> list,int sum) {if(root==null) return ;sum+=root.val;//每次更新sum值if(root.left==null&&root.right==null) {//走到叶结点,进行判断if(sum==target){ list.add(root.val);//都得将这个值加入listarr.add(new ArrayList<Integer>(list));list.remove(list.size()-1);//移除最后一个元素,深度遍历完一条路径后要回退}return ; }//未走到叶结点时候处理 list.add(root.val);//在list里面加入该结点path(root.left,target,arr,list,sum);path(root.right,target,arr,list,sum);list.remove(list.size()-1);//移除最后一个元素,深度遍历完一条路径后要回退}
}
剑指offer: 二叉树中和为某一值的路径相关推荐
- C#刷剑指Offer | 二叉树中和为某一值的路径
[C#刷题]| 作者 / Edison Zhou 这是EdisonTalk的第292篇原创内容 我们来用之前学到的数据结构知识来刷<剑指Offer>的一些核心题目(精选了其中30+道题目) ...
- 剑指offer-JZ82 二叉树中和为某一值的路径(一)(附区分DFS和回溯)
描述 给定一个二叉树root和一个值 sum ,判断是否有从根节点到叶子节点的节点值之和等于 sum 的路径. 1.该题路径定义为从树的根结点开始往下一直到叶子结点所经过的结点 2.叶子节点是指没有子 ...
- 剑指offerQ24二叉树中和为某一值的路径
题目描述 输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径.路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径.(注意: 在返回值的list中,数组长度大 ...
- 剑指 Offer 34. 二叉树中和为某一值的路径【附完整可运行代码】
立志用最少的代码做最高效的表达 输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径.从树的根节点开始往下一直到叶节点所经过的节点形成一条路径. 示例: 给定如下二叉树,以及目标和 ...
- 【LeetCode】剑指 Offer 34. 二叉树中和为某一值的路径
[LeetCode]剑指 Offer 34. 二叉树中和为某一值的路径 文章目录 [LeetCode]剑指 Offer 34. 二叉树中和为某一值的路径 package offer;import ja ...
- 【重点】剑指offer——面试题25:二叉树中和为某一值的路径
剑指offer--面试题25:二叉树中和为某一值的路径 参考网址:https://www.nowcoder.com/profile/5488508/codeBookDetail?submissionI ...
- 剑指offer:面试题34. 二叉树中和为某一值的路径
题目:二叉树中和为某一值的路径 输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径.从树的根节点开始往下一直到叶节点所经过的节点形成一条路径. 示例: 给定如下二叉树,以及目标和 ...
- 《剑指offer》— JavaScript(24)二叉树中和为某一值的路径
二叉树中和为某一值的路径 题目描述 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径.路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径. 思路 前序遍历二叉树, ...
- 《剑指offer》-- 从上往下打印二叉树、二叉搜素树的后序遍历、二叉树中和为某一值的路径、二叉树与双向链表
一.从上往下打印二叉树: 1.题目: 上往下打印出二叉树的每个节点,同层节点从左至右打印. 2.解题思路: 用arraylist模拟一个队列来存储相应的TreeNode. 3.代码实现: public ...
最新文章
- java 的继承_关于java中的继承
- 网络:TCP粘包问题?如何解决?
- linux删除物理卷命令,如何安全的删除Linux LVM中的PV物理卷(硬盘或分区
- CSS基础(part9)--CSS背景
- 49. 字母异位词分组
- [css] css怎样使每个字符宽度一样?
- java反射 虚拟机优化_面试官问我:Java反射是什么?我回答竟然不上来......
- linux对于文本的操作,Linux文本文件操作
- Android 软键盘弹出时把原来布局顶上去的解决方法
- 【原创】软件测试基础流程
- Android手机RTMP播放工具(APK,支持秒开)
- OFFICE2013工具栏消失后的处理
- 分集阶数(diversity order)
- 平板电脑开机出现android,平板电脑常见故障解决方法
- 妈妈再也不用担心我的博客访问量了(一个可以刷博客访问量的小程序java)
- 开发人员如何规划自己的职业生涯
- java正则匹配以什么开始的_正则匹配 符合以什么开头以什么结尾的
- win10卸载软件通过控制面板
- 【PCL】.asc文件转换为.pcd文件
- 杭州电子科技大学计算机科学与技术专业排名,杭州电子科技大学计算机科学与技术研究生专业排名...