Это мое определение узла:
class Node(object):
def __init__(self, val, children):
self.val = val
self.children = children
Теперь я должен найти максимальную глубину в дереве. Я использую поиск в ширину, чтобы отметить уровень каждого узла, а затем возвращаю максимум уровней.
Это мой код:
def maxDepth(self, root):
"""
:type root: Node
:rtype: int
"""
if(root == None):
return 0
q = []
q.append(root)
level={root.val:1}
while(len(q)>0):
s = q.pop(0)
for c in s.children:
q.append(c)
level[c.val]=level[s.val]+1
return max(level.values())
В некоторых случаях работает, но во многих случаях дает неправильный ответ. Я не понимаю, где мне не хватает концепции?