二叉搜索树的第k小的数

python
class Solution:
def kthSmallest(self, root: Optional[TreeNode], k: int) -> int:
# 二叉搜索树的中序遍历是 升序排列的, 求第k小的,即第k个数
self.res = []
def fun(root):
if not root:
return
fun(root.left)
if root:
self.res.append(root.val)
fun(root.right)
return
fun(root)
return self.res[k-1]
验证二叉搜索树

python
class Solution:
def isValidBST(self, root: Optional[TreeNode]) -> bool:
self.res = []
self.flag = True
def func(root):
if not root:
return
func(root.left)
if root:
self.res.append(root.val)
if len(self.res)>1 and self.res[-1] <= self.res[-2]:
self.flag = False
return
func(root.right)
return
func(root)
return self.flag