我試圖在我的二叉樹中插入一個節點。但是,我不知道這樣做的正確方法。我明白我應該運行一個bfs並插入第一個空位置。我如何將它翻譯成代碼?插入二叉樹(非BST)Python
我試圖與DFS: 樹看起來是這樣的:
class Node:
def __init__(self, val):
self.val = val
self.left, self.right = None, None
def insert(node, val):
if not node:
return Node(val)
if not node.left:
node.left = Node(val)
return
if not node.right:
node.right = Node(val)
return
return insert(node.left, val)
return insert(node.right, val)
n1, n2, n3, n4, n5, n6, n7, n8 = Node(1), Node(2), Node(3), Node(4), Node(5), Node(6), Node(7), Node(8)
n1.left, n1.right, n2.left, n2.right, n3.left, n3.right, n4.left = n2, n3, n4, n5, n6, n7, n8
但是,這給了我一個無法訪問的代碼。 這樣做的正確方法是什麼?我非常沮喪的人叫Binary Tree他們真的意味着BST。
您可以先在您的問題中修復縮進嗎?它有助於瞭解什麼是實際錯誤,以及在SO上發佈代碼的工件。 – cosinepenguin
其實在代碼中有很多錯誤......'n.left'和'n.right'在做什麼?我不認爲你曾經宣佈過''''''。 – cosinepenguin
縮進是可以的我想。高清確實是在課外 –