题解 | #打印路径 二叉树#

二叉树中和为某一值的路径(二)

http://www.nowcoder.com/practice/b736e784e3e34731af99065031301bca

import java.util.*;
/**
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 expectNumber) {
        ArrayList<ArrayList<Integer>> ret = new ArrayList<>() ;
        ArrayList<Integer> path = new ArrayList<>() ;
        find(root , expectNumber , ret , path) ;
        return ret ;
    }
    public void find(TreeNode root , int exp ,  ArrayList<ArrayList<Integer>> ret ,  ArrayList<Integer> path) {
        if(root == null) {
            return ;
        }
        if(root.left == null && root.right == null) {
            if(exp == root.val) {
                path.add(root.val) ;
                ArrayList<Integer> temp = new ArrayList<>() ;
                for(Integer num : path) {
                    temp.add(num) ;
                }
                ret.add(temp) ;
                path.remove(path.size()-1) ;
                return ;
            } else {
                return ;
            } 
        } else {
            exp-=root.val ;
            path.add(root.val) ;
            if(root.left != null) {
                find(root.left , exp , ret , path) ;
            }
            if(root.right != null) {
                find(root.right , exp , ret , path) ;
            }
            path.remove(path.size()-1) ;
            return ;
        }
    }
}









一个菜鸟的算法刷题记录 文章被收录于专栏

分享一个菜鸟的成长记录

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-09 11:30
找工作7个月,投了7000封,3段世界五百强实习,才有一个offer,牛油们肯定比我强吧
码农索隆:不对不对不对,实习经历这么厉害,简历也没少投,问题出在哪呢
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
06-11 13:34
offe从四面八方来:我真的没时间陪你闹了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务