Skip to main content

Command Palette

Search for a command to run...

path sum 2

Published
1 min readView as Markdown
// Definition for a binary tree node.
class TreeNode {
    int val;
    TreeNode left, right;
    TreeNode(int val) {
        this.val = val;
    }
}

class Solution {
    public List<List<Integer>> pathSum(TreeNode root, int targetSum) {
        List<List<Integer>> result = new ArrayList<>();
        if (root == null) return result;

        // Track the current path
        List<Integer> current = new ArrayList<>();
        dfs(root, targetSum, current, result);
        return result;
    }

    private void dfs(
    TreeNode node, int remaining,
     List<Integer> current,
     List<List<Integer>> result
     ) {
        if (node == null) return;
        current.add(node.val);
        remaining -= node.val;
        if (node.left == null && node.right == null && remaining == 0) {
            result.add(new ArrayList<>(current));
        } else {
            dfs(node.left, remaining, current, result);
            dfs(node.right, remaining, current, result);
        }
        current.remove(current.size() - 1);
    }
}

More from this blog

Amit singh's blog

235 posts