• leecode no.113 路径总和 II


    package tree;

    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.List;
    import java.util.Stack;

    /**
    * 113. 路径总和 II
    * 给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。
    *
    * 叶子节点 是指没有子节点的节点。
    *
    * @author Tang
    * @date 2021/7/16
    */
    public class PathSum {

    int targetSum;

    List<List<Integer>> lists = new ArrayList<>();

    public List<List<Integer>> pathSum(TreeNode root, int targetSum) {
    if(root == null){
    return lists;
    }
    this.targetSum = targetSum;
    preSearch(root, 0, new Stack<>());
    return lists;
    }

    /**
    * 继续前序遍历
    */
    private void preSearch(TreeNode node, int sum, Stack<Integer> stack){
    if(node == null){
    return;
    }
    sum += node.val;
    stack.push(node.val);
    if(node.left == null && node.right == null){
    if(sum == targetSum){
    List<Integer> list = new ArrayList<>(stack);
    lists.addAll(Collections.singleton(list));
    return;
    }
    }
    if(node.left != null){
    preSearch(node.left, sum, stack);
    stack.pop();
    }
    if(node.right != null){
    preSearch(node.right, sum, stack);
    stack.pop();
    }
    }

    public static void main(String[] args) {

    }

    }
  • 相关阅读:
    工作一年感想
    launcher项目踩坑小结(1)
    滕王阁序
    PC端/移动端常见的兼容性问题总结
    Java中逻辑&和短路&&,逻辑|和短路||的区别
    Linux常用指令和系统管理命令总结
    Ajax学习笔记
    js放大镜特效
    《Python for Data Science》笔记之着手于数据
    Python2&3学习中遇到的坑
  • 原文地址:https://www.cnblogs.com/ttaall/p/15023238.html
Copyright © 2020-2023  润新知