Monday, April 25, 2016

max width (or widths) of binary tree

Used here.
int widths(n):
    if n == null:
        return 0
    width = {left = 0, right= 0}
    widths(n, 0, width)
    return -width.left + 1 + width.right

widths(n, offset, width):
    if n == null:
        return
    width.left  = min(width.left,  offset)
    width.right = max(width.right, offset)
    (n.left,  offset -1, width)
    (n.right, offset +1, width)

No comments:

Post a Comment