13 lines
450 B
Python
13 lines
450 B
Python
def widthOfBinaryTree(self, root):
|
|
if not root: return 0
|
|
stack = [[(root, 0)]]
|
|
res = 1
|
|
while True:
|
|
children = []
|
|
for node, value in stack[-1]:
|
|
if node.left: children.append((node.left, value * 2))
|
|
if node.right: children.append((node.right, value * 2 + 1))
|
|
if not children: break
|
|
stack.append(children)
|
|
res = max(res, children[-1][1] - children[0][1] + 1)
|
|
return res |