AcWing
  • 首页
  • 课程
  • 题库
  • 更多
    • 竞赛
    • 题解
    • 分享
    • 问答
    • 应用
    • 校园
  • 关闭
    历史记录
    清除记录
    猜你想搜
    AcWing热点
  • App
  • 登录/注册

AcWing 47. 二叉树中和为某一值的路径 - java + dfs    原题链接    中等

作者: 作者的头像   vic0920 ,  2019-09-11 23:56:23 ,  所有人可见 ,  阅读 1100


1


题目描述

输入一棵二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。

从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。

样例

给出二叉树如下所示,并给出num=22。
      5
     / \
    4   6
   /   / \
  12  13  6
 /  \    / \
9    1  5   1

输出:[[5,4,12,1],[5,6,6,5]]

`/*
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
/
class Solution {
static List[HTML_REMOVED]> list = new ArrayList<>();

public List<List<Integer>> findPath(TreeNode root, int sum) {
    if(root == null) return list;
    List<Integer> tmp = new ArrayList<>();

    dfs(root, sum, tmp);
    return list;
}

public void dfs(TreeNode root, int sum, List<Integer> tmp){
    if(root.left == null && root.right == null) {
        if(sum == root.val){
            tmp.add(root.val);
            list.add(new ArrayList<>(tmp));
            tmp.clear();
        }
        return;
    }

    tmp.add(root.val);
    if(root.left != null)
        dfs(root.left, sum-root.val,new ArrayList<>(tmp));
    if(root.right != null)
        dfs(root.right, sum-root.val,new ArrayList<>(tmp));    
}

}`

0 评论

App 内打开
你确定删除吗?
1024
x

© 2018-2025 AcWing 版权所有  |  京ICP备2021015969号-2
用户协议  |  隐私政策  |  常见问题  |  联系我们
AcWing
请输入登录信息
更多登录方式: 微信图标 qq图标 qq图标
请输入绑定的邮箱地址
请输入注册信息