所以我正在研究一个“简单的 Python 代码示例”,它检查一组节点是否形成二叉树,它应该评估并返回 True 或 False,完整代码如下:
class Node(object):
def __init__(self, val, left = None, right = None):
self.val = val
self.right = right
self.left = left
class Solution(object):
def _isValidBSTHelper(self, n , low, high):
if not n:
return True
val = n.val
if ((val > low and val < high) and
self._isValidBSTHelper(n.left, low ,n.val) and
self._isValidBSTHelper(n.right, n.val, high)):
return True
return False
def isValidBST(self, n):
return self._isValidBSTHelper(n, float('-inf'), float('inf'))
## (_5_)
# / \
# (_4_) (_7_)
# / \ / \
#(_3_) (empty)(_6_) (_8_)
node = Node(5)
node.right = Node(7)
node.right.right = Node(8)
node.left = Node(4)
node.left.left = Node(3)
node.right.left = Node(6)
print(Solution().isValidBST(node))
评论应该只是下面表达的节点的直观表示。
我很难理解为什么float('-inf'), float('inf')需要
def isValidBST(self, n):
return self._isValidBSTHelper(n, float('-inf'), float('inf'))
以及 low, high, and n.val价值观如何发挥作用
class Solution(object):
def _isValidBSTHelper(self, n , low, high):
if not n:
return True
val = n.val
在理解此代码如何工作方面的任何帮助将不胜感激,谢谢
慕工程0101907
九州编程
相关分类