leetcode--Validate Binary Search Tree

来源:互联网 发布:万达电商 淘宝卖货 编辑:程序博客网 时间:2024/06/10 02:52

问题描述:

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.

采用中序遍历,如果遍历过程严格服从从小到大,则在最后返回True,否则返回False

# Definition for a  binary tree node# class TreeNode:#     def __init__(self, x):#         self.val = x#         self.left = None#         self.right = Noneclass Solution:    # @param root, a tree node    # @return a boolean    def isValidBST(self, root):        def inOrder(root):            stack = []            p = root            minVal = None            while p or len(stack) > 0:                if p:                    stack.append(p)                    p = p.left                else:                    p = stack.pop()                    if None == minVal or minVal < p.val:                        minVal = p.val                        p = p.right                    else:                        return False            return True        return inOrder(root)
0 0
原创粉丝点击