def createMinimalBST(arr: list, start: int, end: int) -> TreeNode: if start > end: return None mid = start + (end - start) // 2 new_node = TreeNode(arr[mid]) new_node.addLeft(createMinimalBST(arr, start, mid - 1)) new_node.addRight(createMinimalBST(arr, mid + 1, end)) return new_node
levelOrderTraverse(node.right, lists, level + 1) if __name__ == "__main__": # Tree Initialization root_node = TreeNode(1) n2 = TreeNode(2) n3 = TreeNode(3) n4 = TreeNode(4) n5 = TreeNode(5) n6 = TreeNode(6) n7 = TreeNode(7) n8 = TreeNode(8) n9 = TreeNode(9) n8.addLeft(n9) n5.addLeft(n7) n5.addRight(n8) n3.addLeft(n5) n4.addRight(n6) n2.addLeft(n4) root_node.addLeft(n2) root_node.addRight(n3) levelLinkedLists = list() levelOrderTraverse(root_node, levelLinkedLists, 0) i = 0 for ll in levelLinkedLists: print("Level - ", i, end=" | ") while ll is not None: