博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
剑指offer-二叉树中和为某一值的路径
阅读量:4319 次
发布时间:2019-06-06

本文共 1365 字,大约阅读时间需要 4 分钟。

题目描述

输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。
代码:
  1. // 二叉树中和为某一值的路径  
  2.     /** 
  3.      * 题目描述 
  4.      * 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。 
  5.      */  
  6.   
  7.     ArrayList<ArrayList<Integer>> arrayList = new ArrayList<>();  
  8.     ArrayList<Integer> current = new ArrayList<>();  
  9.   
  10.     public ArrayList<ArrayList<Integer>> FindPath(TreeNode root, int target) {  
  11.         if (root == null) {  
  12.             return arrayList;  
  13.         }  
  14.   
  15.         current.add(root.val);  
  16.   
  17.         if (root.left == null && root.right == null) {  
  18.             if (!current.isEmpty()) {  
  19.                 int sum = 0;  
  20.                 for (int i : current) {  
  21.                     sum += i;  
  22.                 }  
  23.                 if (sum == target) {  
  24.                     ArrayList<Integer> list = new ArrayList<>(current);  
  25.                     arrayList.add(list);  
  26.                 }  
  27.             }  
  28.         }  
  29.         FindPath(root.left, target);  
  30.         FindPath(root.right, target);  
  31.         current.remove(current.size() - 1);  
  32.   
  33.         return arrayList;  
  34.     }  

 

第二种:

链接:

来源:牛客网

public
class
Solution {
    
private
ArrayList<ArrayList<Integer>> listAll =
new
ArrayList<ArrayList<Integer>>();
    
private
ArrayList<Integer> list =
new
ArrayList<Integer>();
    
public
ArrayList<ArrayList<Integer>> FindPath(TreeNode root,
int
target) {
        
if
(root ==
null
)
return
listAll;
        
list.add(root.val);
        
target -= root.val;
        
if
(target ==
0
&& root.left ==
null
&& root.right ==
null
)
            
listAll.add(
new
ArrayList<Integer>(list));
        
FindPath(root.left, target);
        
FindPath(root.right, target);
        
list.remove(list.size()-
1
);
        
return
listAll;
    
}
}

转载于:https://www.cnblogs.com/wwjldm/p/7426354.html

你可能感兴趣的文章
HTTP协议
查看>>
CentOS7 重置root密码
查看>>
Centos安装Python3
查看>>
PHP批量插入
查看>>
laravel连接sql server 2008
查看>>
Laravel框架学习笔记之任务调度(定时任务)
查看>>
Laravel 的生命周期
查看>>
Nginx
查看>>
Navicat远程连接云主机数据库
查看>>
Nginx配置文件nginx.conf中文详解(总结)
查看>>
jxl写入excel实现数据导出功能
查看>>
linux文件目录类命令|--cp指令
查看>>
.net MVC 404错误解决方法
查看>>
linux系统目录结构
查看>>
git
查看>>
btn按钮之间事件相互调用
查看>>
Entity Framework 4.3.1 级联删除
查看>>
codevs 1163:访问艺术馆
查看>>
冲刺Noip2017模拟赛3 解题报告——五十岚芒果酱
查看>>
并查集
查看>>