Highest-total path through a binary tree encoded in level order

Read the full interview experience this question came from →

Quick Overview

A coding problem that asks for the largest sum of any non-empty path in a binary tree given in level order, where a path may bend at one node and need not include the root or a leaf. It tests recursive reasoning over trees, correct handling of negative values, and careful decoding of the input format.

Highest-total path through a binary tree encoded in level order

Company: Amazon

Role: Software Engineer

Category: Coding & Algorithms

Difficulty: medium

Interview Round: Other

A binary tree stores an integer at every node, and values may be negative. A path is a sequence of nodes in which each pair of consecutive nodes is joined by a parent-child edge and no node appears more than once. A path contains at least one node, does not have to include the root, and does not have to start or end at a leaf; it may rise out of one subtree through a node and descend into that node's other subtree. The sum of a path is the total of its node values. Return the largest sum over all non-empty paths in the tree. ### Function Signature ```python def largest_path_total(values: List[Optional[int]]) -> int: ``` ### Rules - The tree is given in level order. `values[0]` is the root. Reading left to right, each following pair of entries gives the left and then the right child of the next present node in level order; `None` means that child is absent. - Absent nodes have no children listed. Trailing `None` entries may be omitted. - The tree has at least one node, so `values[0]` is never `None`. - Return a single integer: the maximum path sum. ### Constraints - The number of nodes is between 1 and `3 * 10^4`. - Every node value is between `-1000` and `1000`. - The answer fits in a 32-bit signed integer; its absolute value is at most `3 * 10^7`. ### Examples **Example 1** Input: `values = [4, 2, 7]` Output: `13` Explanation: the path 2 → 4 → 7 uses every node. **Example 2** Input: `values = [-5, 8, 3, None, None, 10, -2]` Output: `16` Explanation: node -5 has children 8 and 3; node 8 has no children; node 3 has children 10 and -2. The best path is 8 → -5 → 3 → 10. **Example 3** Input: `values = [-7, -3, -9]` Output: `-3` Explanation: every value is negative, so the best path is the single node -3.

Overview: A coding problem that asks for the largest sum of any non-empty path in a binary tree given in level order, where a path may bend at one node and need not include the root or a leaf. It tests recursive reasoning over trees, correct handling of negative values, and careful decoding of the input format.

Read the full Amazon Software Engineer interview experience this question came from

Amazon logo
Amazon
Jun 21, 2026
mediumSoftware EngineerOtherCoding & Algorithms
0
0

A binary tree stores an integer at every node, and values may be negative. A path is a sequence of nodes in which each pair of consecutive nodes is joined by a parent-child edge and no node appears more than once. A path contains at least one node, does not have to include the root, and does not have to start or end at a leaf; it may rise out of one subtree through a node and descend into that node's other subtree. The sum of a path is the total of its node values.

Return the largest sum over all non-empty paths in the tree.

Function Signature

def largest_path_total(values: List[Optional[int]]) -> int:

Rules

  • The tree is given in level order. values[0] is the root. Reading left to right, each following pair of entries gives the left and then the right child of the next present node in level order; None means that child is absent.
  • Absent nodes have no children listed. Trailing None entries may be omitted.
  • The tree has at least one node, so values[0] is never None .
  • Return a single integer: the maximum path sum.

Constraints

  • The number of nodes is between 1 and 3 * 10^4 .
  • Every node value is between -1000 and 1000 .
  • The answer fits in a 32-bit signed integer; its absolute value is at most 3 * 10^7 .

Examples

Example 1

Input: values = [4, 2, 7]

Output: 13

Explanation: the path 2 → 4 → 7 uses every node.

Example 2

Input: values = [-5, 8, 3, None, None, 10, -2]

Output: 16

Explanation: node -5 has children 8 and 3; node 8 has no children; node 3 has children 10 and -2. The best path is 8 → -5 → 3 → 10.

Example 3

Input: values = [-7, -3, -9]

Output: -3

Explanation: every value is negative, so the best path is the single node -3.