Skip to content

Prepare For Coder Interview – Denny

  • Basic
  • Medium
  • Hard
  • Architect
  • Life

LeetCode: Validate Binary Search Tree

Posted on January 9, 2018July 26, 2020 by braindenny

Basic tree datastructure



Given a binary tree, determine if it is a valid 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.

Example 1:
    2
   / \
  1   3

Binary tree [2,1,3], return true.

Example 2:
    1
   / \
  2   3

Binary tree [1,2,3], return false.

Github: code.dennyzhang.com

Credits To: leetcode.com

## https://code.dennyzhang.com/validate-binary-search-tree
## Basic Ideas: in-order
##
## Complexity: Time O(n), Space O(1)
# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution:
    def isValidBST(self, root: TreeNode) -> bool:
        prev = -sys.maxsize
        def dfs(root):
            if not root: return True
            nonlocal prev
            if not dfs(root.left):
                return False
            if prev != -sys.maxsize and prev>=root.val:
                return False
            prev = root.val
            return dfs(root.right)
        return dfs(root)
linkedin
github
slack

Post Views: 1
Posted in BasicTagged #binarytree

Post navigation

LeetCode: Sum Root to Leaf Numbers
LeetCode: Palindrome Partitioning

Leave a Reply Cancel reply

Your email address will not be published.

Tags

#array #backtracking #bfs #binarytree #bitmanipulation #blog #classic #codetemplate #combination #dfs #dynamicprogramming #game #graph #greedy #heap #inspiring #interval #linkedlist #manydetails #math #palindrome #recursive #slidingwindow #stack #string #subarray #trie #twopointer #twosum binarysearch editdistance hashmap intervaldp knapsack monotone oodesign presum rectangle redo review rotatelist series sql treetraversal unionfind

Recent Posts

  • a
  • a
  • a
  • a
  • a

Recent Comments

    Archives

    Categories

    • Amusing
    • Basic
    • Easy
    • Hard
    • Life
    • Medium
    • Resource
    • Review
    • Series
    • Uncategorized
    Proudly powered by WordPress | Theme: petals by Aurorum.