【发布时间】:2019-03-25 15:16:45
【问题描述】:
我正在求解一个给定数字 n 的 BST 算法,我需要返回小于 n 的最大值。不幸的是,一旦我找到了答案。我的代码没有返回它,而是继续循环。我错过了什么?谢谢。
class Node:
# Constructor to create a new node
def __init__(self, key):
self.key = key
self.left = None
self.right = None
self.parent = None
# A binary search tree
class BinarySearchTree:
# Constructor to create a new BST
def __init__(self):
self.root = None
def find_largest_smaller_key(self, num):
largest = 0
while self.root:
if self.root.key < num and self.root.key > largest:
largest = self.root.key
if self.root.right:
if self.root.right.key < num and self.root.right.key > largest:
self.root = self.root.right
if self.root.left:
if self.root.left.key < num and self.root.left.key > largest:
largest = self.root.left.key
self.root = self.root.left
return largest
【问题讨论】:
-
请使用一致的缩进方案;与某些级别使用 4 个空格和其他级别使用 2 个空格相比,这将使您的代码更易于阅读。
标签: python algorithm binary-search-tree