输出所有到叶子节点的路径 回溯写法

Posted yayun0516

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了输出所有到叶子节点的路径 回溯写法相关的知识,希望对你有一定的参考价值。

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

    public List<List<Integer>> pathSum(TreeNode root, int sum) 
        List<Integer> list = new ArrayList<>();
        dfs(root, sum, list);
        return results;
    

    private void dfs(TreeNode root, int sum, List<Integer> list) 
        if (root == null) 
            return;
        
        int value = root.val;
        System.out.println(value);
        list.add(value);
        sum -= value;
        if (root.left == null && root.right == null) 
            results.add(new ArrayList<>(list));
        
        if (root.left != null) 
            dfs(root.left, sum, list);
        
        if (root.right != null) 
            dfs(root.right, sum, list);
        
        list.remove(list.size() - 1);
    

 

以上是关于输出所有到叶子节点的路径 回溯写法的主要内容,如果未能解决你的问题,请参考以下文章

二叉树:找我的所有路径?

113. 路径总和 II回溯Normal

257. 二叉树的所有路径

LeetCode 113. 路径总和 II(dfs,回溯,列表,二叉树,Java)

LeetCode 113. 路径总和 II(dfs,回溯,列表,二叉树,Java)

Java 求解二叉树的所有路径