To solve this problem, you'll have to open it on the computer

Maximum Sum BST

Tree
hard
Score: 60

Given a binary tree root, return the maximum sum of all keys of any sub-tree which is also a Binary Search Tree (BST).

Assume a BST is defined as follows:

  • The left subtree of a node contains only nodes with keys less than the node’s key.
  • The right subtree of a node contains only nodes with keys greater than the node’s key.
  • Both the left and right subtrees must also be binary search trees.

Note : A single leaf node will also act as a BST.

Class TreeNode:
    val (int)
    left (TreeNode)
    right (TreeNode)

Input Format:

First Parameter - root of the tree.

Output Format:

Return the maximum sum of all keys of a binary tree.

Example 1:

img

Input:
    root = 1 4 3 2 4 2 5 null null null null null null 4 6
Output:
    20
Explanation:
    Maximum sum in a valid Binary search tree is obtained in root node with key equal to 3.

Example 2:

img

Input:
    root = 4 3 null 1 2
Output:
    2
Explanation:
    Maximum sum in a valid Binary search tree is obtained in a single root node with key equal to 2.

Example 3:

Input:
    -4 -2 -5
Output:
    0
Explanation:
    All values are negatives. Return an empty BST.

Constraints:

  • n = Number of nodes.
  • 1 <= n <= 104.
  • -4 * 104 <= node.val <= 4 * 104.
  • Expected Time Complexity: O(N).
  • Expected Space Complexity: O(1).
Submit code to see the your result here