class BinaryTreeNode:
def __init__(self, value):
self.value = value
self.left = None
self.right = None
def level_order_traversal(root):
q = []
result = []
if not root:
return result
q.append(root)
while q:
temp_q = []
res_q = []
node = q.pop(0)
res_q.append(node.value)
if node.left:
temp_q.append(node.left)
if node.right:
temp_q.append(node.right)
q = temp_q
result.append(res_q)
return result
if __name__ == "__main__":
result = level_order_traversal([0, 1, None, None, 2, 4, None, None, 3])
print(result)
uj5u.com熱心網友回復:
代碼挑戰站點通常會將 JSON 輸入轉換為給定類的實體——在這種情況下BinaryTreeNode,具有相同的嵌套實體。
一旦您決定在代碼挑戰框架之外測驗您的代碼,您就必須自己進行準備作業。如果您希望它使用串列作為輸入,則將此輔助函式添加到您的工具集中:
def to_binary_tree(items):
if not items:
return None
it = iter(items)
root = BinaryTreeNode(next(it))
q = [root]
for node in q:
val = next(it, None)
if val is not None:
node.left = BinaryTreeNode(val)
q.append(node.left)
val = next(it, None)
if val is not None:
node.right = BinaryTreeNode(val)
q.append(node.right)
return root
現在你可以這樣做:
if __name__ == "__main__":
result = level_order_traversal(to_binary_tree([0, 1, None, None, 2, 4, None, None, 3]))
print(result)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/445431.html
標籤:python-3.x 算法 数据结构 属性错误
上一篇:python在元標記末尾添加/
