二叉树中和为某一值的路径
来源:互联网 发布:销量预测模型 python 编辑:程序博客网 时间:2024/05/16 06:41
题目描述
输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。
思路:用先序遍历递归的思想去实现,到最后叶节点如果不能的话就退回去一步到叶子结点的父节点。
代码如下:
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 ArrayList<ArrayList<Integer>> FindPath(TreeNode root,int target) { ArrayList<ArrayList<Integer>> lists = new ArrayList<ArrayList<Integer>>(); ArrayList<Integer> list = new ArrayList<Integer>(); if(root == null) return lists; int sum = 0; return xianxu(lists,list,sum,target,root); } private ArrayList<ArrayList<Integer>> xianxu( ArrayList<ArrayList<Integer>> lists, ArrayList<Integer> list, int sum, int target, TreeNode root) { list.add(root.val); sum = sum + root.val; boolean pd = root.left == null && root.right == null; if(sum == target && pd){ ArrayList<Integer> all = new ArrayList<Integer>(); for (int i:list) { all.add(i); } lists.add(all); } if(root.left != null){ xianxu(lists,list,sum,target,root.left); } if(root.right != null){ xianxu(lists,list,sum,target,root.right); } int val = list.remove(list.size()-1); sum = sum-1; return lists; }}
0 0
- 【树】二叉树中和为某一值的路径
- 【树6】二叉树中和为某一值的路径
- 题目11:二叉树中和为某一值的路径
- 二叉树中和为某一值的路径
- 二叉树中和为某一值的路径
- 二叉树中和为某一值的路径
- 二叉树中和为某一值的路径
- 二叉树中和为某一值的所有路径
- 题目1368:二叉树中和为某一值的路径
- 二叉树中和为某一值的路径
- 二叉树中和为某一值的路径
- 二叉树中和为某一值的路径
- 1368:二叉树中和为某一值的路径 @jobdu
- 二叉树中和为某一值的路径
- 二叉树中和为某一值的路径
- Q25:二叉树中和为某一值的路径
- 剑指offer:二叉树中和为某一值的路径
- 二叉树中和为某一值的路径(剑指offer25)
- python3的迭代器和生成器
- 2016年7月19日考试总结
- 动态规划(5)求数组中最长递增子序列
- UVA 202 Repeating Decimals
- 接口
- 二叉树中和为某一值的路径
- 程序员的10句跟字面意思完全不同的常用语
- jQuery 之 删除元素(九)
- 今日首发
- 深入冒泡排序的的理解
- 对缓存的理解
- spring官网下载相关的文档方法
- 杭电OJ2024-C语言合法标识符
- 整棵树上节点间的最大距离