class Solution :
def searchBST ( self, root: Optional[ TreeNode] , val: int ) - > Optional[ TreeNode] :
if not root:
return None
if root. val< val:
return self. searchBST( root. right, val)
elif root. val> val:
return self. searchBST( root. left, val)
else :
return root
class Solution :
def __init__ ( self) :
self. maxVal = - float ( 'inf' )
def isValidBST ( self, root: Optional[ TreeNode] ) - > bool :
if not root:
return True
left = self. isValidBST( root. left)
if maxVal< root. val:
maxVal = root. val
else :
return False
right = self. isValidBST( root. right)
return left and right
class Solution :
def getmin ( self, node) :
if not node:
return
self. getmin( node. left)
if self. pre:
self. ans = min ( self. ans, abs ( self. pre. val- node. val) )
self. pre = node
self. getmin( node. right)
def getMinimumDifference ( self, root: Optional[ TreeNode] ) - > int :
self. ans = float ( 'inf' )
self. pre = None
self. getmin( root)
return self. ans
class Solution :
def traversal ( self, node) :
if not node:
return
self. traversal( node. left)
if self. pre is None :
self. temp = 1
elif self. pre. val== node. val:
self. temp += 1
else :
self. temp = 1
if self. maxC == self. temp:
self. ansValue. append( node. val)
elif self. maxC < self. temp:
self. ansValue = [ node. val]
self. maxC = self. temp
self. pre = node
self. traversal( node. right)
def findMode ( self, root: Optional[ TreeNode] ) - > List[ int ] :
self. pre = None
self. maxC = 0
self. temp = 0
self. ansValue = [ ]
self. traversal( root)
return self. ansValue