1 98题描述
给定二叉搜索树的基本结构。判定二叉搜索树是否有效。
2代码
# 98 题
# Definition for a binary tree node.
# 时间O(n),空间O(n)
# 改进:还可以对空间优化:递归的时候就判断!
class TreeNode: # leecode 内部规定的数据结构! 不需要自己构建树!
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
class Solution:
def inOrder(self, root):
if not root:
return []
left = self.inOrder(root.left)
right = self.inOrder(root.right)
return left + [root.val] + right
def isValidBST(self, root):
inOrderList = self.inOrder(root)
for i in range(len(inOrderList) - 1):
if inOrderList[i] >= inOrderList[i+1]:
return False
return True
本文介绍了一种判定二叉搜索树是否有效的算法。通过中序遍历的方法,检查节点值是否依次递增,以此判断二叉树是否符合二叉搜索树的性质。文章提供了一个Python实现的示例。
248

被折叠的 条评论
为什么被折叠?



