java实现输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径
2017-05-18 11:25
901 查看
import java.util.ArrayList; /** * 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径 * * @author pomay * */ public class Solution_treenodepath { // 存放所有路径 ArrayList<ArrayList<Integer>> lists = new ArrayList<ArrayList<Integer>>(); // 用于遍历 ArrayList<Integer> list = new ArrayList<Integer>(); int num = 0; public ArrayList<ArrayList<Integer>> FindPath(TreeNode root, int target) { if (root == null) { return lists; } num += root.val; list.add(root.val); // 如果此时路径长度值刚好等于目标值,并且此时所在结点为叶子结点(路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径),路径存入lists if (num == target && root.left == null && root.right == null) { // 存放路径结点值 ArrayList<Integer> path = new ArrayList<Integer>(); for (int i = 0; i < list.size(); i++) { path.add(list.get(i)); } lists.add(path); } // 先遍历左子树 if (num < target && root.left != null) { FindPath(root.left, target); } // 左子树遍历结束,遍历右子树 if (num < target && root.right != null) { FindPath(root.right, target); } // 去掉这个结点值 num -= root.val; // 删除该结点,返回到父结点 list.remove(list.size() - 1); return lists; } public static void main(String[] args) { TreeNode root = new TreeNode(8); root.left = new TreeNode(6); root.right = new TreeNode(10); root.left.left = new TreeNode(5); root.left.right = new TreeNode(7); root.right.left = new TreeNode(9); root.right.right = new TreeNode(1); int target = 14; Solution_treenodepath s = new Solution_treenodepath(); ArrayList<ArrayList<Integer>> lists = s.FindPath(root, target); for (int i = 0; i < lists.size(); i++) { System.out.println(lists.get(i)); } } }
相关文章推荐
- java 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。
- 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。
- 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径(剑指offer)
- 题目:输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶结点所经过的结点形成一条路径。
- 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径
- 剑指offer_输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径
- 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。
- 【算法-java】打印出二叉树中结点值的和为输入整数的所有路径
- 面试题:输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。
- <仅是自己做笔记。。。系列-4>输入一个整数和一棵二元树,从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径,打印出和与输入整数相等的所有路径
- 输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。
- 打印出二叉树中结点值的和为输入整数的所有路径
- 剑指offer 打印出二叉树中结点值的和为输入整数的所有路径。
- 每天学习一算法系列(6) (输入一个整数和一棵二元树,从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径,打印出和与输入整数相等的所有路径)
- 输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。
- 《剑指Offer》面试题:打印出二叉树中结点值的和为输入整数的所有路径
- flag2在二元树中找出和为某一值的所有路径 题目:输入一个整数和一棵二元树。 从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。 打印出和与输入整数相等的所有路径。 例如 输入整数
- 《剑指offer》-打印出二叉树中结点值的和为输入整数的所有路径
- 每天学习一算法系列(6) (输入一个整数和一棵二元树,从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径,打印出和与输入整数相等的所有路径)
- Java实现输入一个整数将该整数之前的所有素数输出出来