710066. Largest subtree sum in a tree

Medium

Largest Subtree Sum in a Tree

Summary

Given a tree, find the largest subtree sum. A subtree is a subset of nodes in the original tree. The problem involves traversing and manipulating the tree to find the maximum subtree sum.

Detailed Explanation

The approach to solve this problem involves a recursive function that calculates the maximum subtree sum for each node in the tree. We start by considering the current node as the root of a subtree, then recursively calculate the maximum subtree sums for its left and right children. The maximum subtree sum is the maximum of these three cases: 1) the current node itself, 2) the maximum subtree sum of its left child, and 3) the maximum subtree sum of its right child.

Here's a step-by-step breakdown of the solution:

  • For each node in the tree:
    • Initialize the maximum subtree sum to be the value of the current node.
    • Recursively calculate the maximum subtree sums for its left and right children.
    • Update the maximum subtree sum if any of these recursive calls return a larger value.
  • Return the maximum subtree sum calculated for the root node.

Time complexity: O(n), where n is the number of nodes in the tree. This is because we visit each node once.

Space complexity: O(h), where h is the height of the tree. This is because the recursive function call stack can go up to a depth of h.

Here's an ASCII art diagram of a sample tree:

      1
     / \
    2   3
   / \   \
  4   5   6

Optimized Solutions

Java

View on GeeksforGeeks
public int largestSubtreeSum(TreeNode root) {
    if (root == null) return 0;
    int sum = root.val;
    for (TreeNode child : root.children) {
        int childSum = largestSubtreeSum(child);
        sum = Math.max(sum, childSum + root.val);
    }
    return sum;
}

DevExCode

Master coding interviews with Leetcode, system design, TechBit, QuickLearn, DevTips, Tech Battles, and career services.

© 2026 DevExCode. All rights reserved.