剑指offer--二叉树中和为某一值的路径
来源:互联网 发布:java实时读取log文件 编辑:程序博客网 时间:2024/06/05 18:47
题目描述
输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。
思路:
1. 如果根节点为空或根节点的值大于target则返回空,
2. 否则进入寻找路径的函数,如果根结点的值等于target那么判断如果右子树为空则把根节点的值假如path,反之清空path。
3.若根结点的值不等于target,那么复制path数组到rightpath,之后用path递归执行左子树,rightpath递归执行右子树。
AC代码:
import java.util.ArrayList;/**public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; }}*/public class Solution { public void findpath(TreeNode root,int target,ArrayList<ArrayList<Integer>> paths,ArrayList<Integer> path){ if(root == null || root.val > target){ path.clear(); }else if(root.val == target){ if(root.left == null && root.right == null){ path.add(root.val); paths.add(path); }else{ path.clear(); } }else{ path.add(root.val); ArrayList<Integer> rightpath = new ArrayList<>(); rightpath.addAll(path); target -= root.val; findpath(root.left, target, paths,path); findpath(root.right, target, paths,rightpath); } } public ArrayList<ArrayList<Integer>> FindPath(TreeNode root,int target) { ArrayList<Integer> path = new ArrayList<>(); ArrayList<ArrayList<Integer>> paths = new ArrayList<>(); if(root == null || root.val > target){ return paths; } findpath(root, target,paths,path); return paths; }}
阅读全文
1 0
- 剑指offer:二叉树中和为某一值的路径
- 【剑指offer】二叉树中和为某一值的路径
- 剑指offer--二叉树中和为某一值的路径
- 《剑指offer》二叉树中和为某一值的路径
- 【剑指Offer】二叉树中和为某一值的路径
- 剑指Offer--二叉树中和为某一值的路径
- 剑指offer:二叉树中和为某一值的路径
- 剑指offer 二叉树中和为某一值的路径
- 剑指offer:二叉树中和为某一值的路径
- [剑指offer]二叉树中和为某一值的路径
- 《剑指offer》-二叉树中和为某一值的路径
- 剑指offer 二叉树中和为某一值的路径
- 【剑指offer】二叉树中和为某一值的路径
- 剑指offer|二叉树中和为某一值的路径
- 《剑指offer》二叉树中和为某一值的路径
- 剑指offer 二叉树中和为某一值的路径
- 剑指Offer:二叉树中和为某一值的路径
- 剑指offer-二叉树中和为某一值的路径
- opencv笔记(12):支持向量机-SVM
- 开发工具快捷键Ctrl+Shift+F查找文件功能不能使用
- jsp 解决乱码问题
- bufffer and cache 区别
- 优化的选择排序
- 剑指offer--二叉树中和为某一值的路径
- java 数组分配空间的多种方式对比
- CFile用法与实现
- select, poll,epoll详解
- ES6之 let与const
- ajax提交新增方法
- java运行时内存简介
- 逆波兰式、中缀表达式后缀表达式的总结与例题
- 经典论文翻译导读之《Finding a needle in Haystack: Facebook’s photo storage》