zoukankan      html  css  js  c++  java
  • 24、二叉树中和为某一值的路径

    一、题目

    输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。

    二、解法

     1 public class Solution {
     2     //存储所有的路径
     3     private ArrayList<ArrayList<Integer>> listall = new ArrayList<ArrayList<Integer>>();
     4     //存储一条路径
     5     private ArrayList<Integer> list = new ArrayList<Integer>();
     6      public ArrayList<ArrayList<Integer>> FindPath(TreeNode root,int target) {
     7          if(root == null)
     8              return listall;
     9          //如果不为空,那么就从root 添加起
    10          list.add(root.val);
    11          target -= root.val;
    12          //判断target 是否为 0 并且当前root为叶子结点
    13          if(target == 0 && root.left == null && root.right == null)
    14              //添加当前的list这条路径
    15              listall.add(new ArrayList<Integer>(list));
    16          //递归左子树
    17          FindPath(root.left,target);
    18          //递归右子树
    19          FindPath(root.right,target);
    20          //当前路径遍历完后,删除该结点,即最后一个结点
    21          list.remove(list.size()-1);
    22          return listall;
    23      }
    24 }
  • 相关阅读:
    hdu 1978
    hdu 2700
    hdu 1176
    hdu 2390
    hdu 2707
    hdu 1804
    hdu 2703
    hdu 2572
    hdu 1171
    React有状态组件和无状态组件
  • 原文地址:https://www.cnblogs.com/fankongkong/p/7452149.html
Copyright © 2011-2022 走看看