Я пытаюсь решить проблему, когда пишу функцию, которая вычисляет среднюю глубину папки в дереве. Однако компилятор говорит мне, что не может проанализировать мой вывод, вот точная ошибка:
#Traceback (most recent call last):
# File "solution.py", line 59, in <module>
# res = average_folder_depth(root)
# File "solution.py", line 27, in average_folder_depth
# levelSum += current.self.children
#AttributeError: 'Folder' object has no attribute 'self'
from collections import deque
class Folder:
def __init__(self):
self.children = []
def find_average_folder_depth(root):
if root is None:
return
queue = deque()
queue.append(root)
while queue:
levelSize = len(square)
levelSum = 0.0
for _ in range(levelSize):
current = queue.pop(0)
if current.left:
queue.append(current.left)
if current.right:
queue.append(current.right):
result.append(levelSum / levelSize)
return result
Средняя глубина (0 + 1 + 2 + 3 + 4 + 2) / 6 = 2,0. В памяти дерево папок представляется следующим образом:
ROOT
|---A
| |---B
| | |---C
| | | |---D
| |
| |
| |---E