Skip to content

Latest commit

 

History

History
24 lines (16 loc) · 666 Bytes

File metadata and controls

24 lines (16 loc) · 666 Bytes

Largest BST Subtree

Given a binary tree, find the largest subtree which is a Binary Search Tree (BST), where largest means subtree with largest number of nodes in it.

Note: A subtree must include all of its descendants. Here's an example:

    10
    / \
    5  15
    / \   \ 
    1   8   7

The Largest BST Subtree in this case is the highlighted one. The return value is the subtree's size, which is 3.

Hint:

You can recursively use algorithm similar to 98. Validate Binary Search Tree at each node of the tree, which will result in O(nlogn) time complexity.

Follow up:

Can you figure out ways to solve it with O(n) time complexity?