• 剑指Offer(Java版)第二十九题:输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。 路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。


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

    import java.util.*;

    public class Class29 {

    public class TreeNode {
    int val = 0;
    TreeNode left = null;
    TreeNode right = null;

    public TreeNode(int val) {
    this.val = val;
    }
    }

    private ArrayList<Integer> nodeList = new ArrayList<Integer>();
    private ArrayList<ArrayList<Integer>> pathList = new ArrayList<ArrayList<Integer>>();

    public ArrayList<ArrayList<Integer>> FindPath(TreeNode node, int target){
    if(node == null){
    return pathList;
    }
    nodeList.add(node.val);
    target -= node.val;
    if(target == 0 && node.left == null && node.right == null){
    int i = 0;
    while(i < pathList.size() && nodeList.size() < pathList.get(i).size()){
    i++;
    }
    pathList.add(i,new ArrayList<Integer>(nodeList));
    }else{
    pathList = FindPath(node.left,target);
    pathList = FindPath(node.right,target);
    }
    //删除最后一个节点
    nodeList.remove(nodeList.size() - 1);
    return pathList;
    }

    public static void main(String[] args) {
    // TODO Auto-generated method stub

    }

    }

  • 相关阅读:
    录制游戏视频——fraps
    ssh 带端口登录
    You have new mail in /var/spool/mail/root 烦不烦你?
    php生成xml的四种方法(转)
    liunx命令之whereis、which、find的区别和联系
    wancms从apache迁移至nginx
    面试题
    NP
    Careercup | Chapter 7
    OS | 哲学家问题
  • 原文地址:https://www.cnblogs.com/zhuozige/p/12509942.html
Copyright © 2020-2023  润新知