Advertisement
Guest User

Untitled

a guest
Jul 20th, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.71 KB | None | 0 0
  1. def traverse(node, depth=0, par=None):
  2.     out = dict()
  3.     out['parent'] = None if par is None else par
  4.     out['depth'] = depth
  5.     out['dist'] = node.dist
  6.     out['children'] = []
  7.     orig_dist = node.dist
  8.     for direction in ('left', 'right'):
  9.         while True:
  10.             node = getattr(node, direction)
  11.             ## End of tree or reached new level
  12.             if (node is None) or (orig_dist != node.dist)):
  13.                 break
  14.             ## Child element                                                                                                                                          
  15.             else:
  16.                 out['children'].append(traverse(node, depth+1))
  17.     return out
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement