二元搜尋樹的特色就是任意子樹的根節點資料大於左子樹的資料,且小於左子樹的資料。
因此我們在建構二元搜尋樹的時候也要依照他的邏輯!
為求方便,我們就使用 Hackerrank 上的題目:Binary Search Tree : Insertion
如果通過他的測試就代表你的函式實作正確。
由於這個函式是定義在 class Node 之下,所以在呼叫類別成員、類別方法前,都要加上 self
關鍵字
def insert(self, val):
if self.root is None:
self.root = Node(val)
return self.root
else:
self.helper(self.root, val)
return self.root
def helper(self, root, val):
if root.info > val:
if root.left is None:
root.left = Node(val)
return self.root
else:
return self.helper(root.left, val);
else:
if root.right is None:
root.right = Node(val);
return self.root
else:
return self.helper(root.right, val);