Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

<< [48] Reconstruct tree from pre-order and in-order traversals >>

Given pre-order and in-order traversals of a binary tree, write a function to reconstruct the tree.

Example:

>>> def pre_order(tree):
...     return [] if tree is None else [tree[0]] + pre_order(tree[1]) + pre_order(tree[2])

>>> def in_order(tree):
...     return [] if tree is None else in_order(tree[1]) + [tree[0]] + in_order(tree[2])

>>> tree = ['1B', ['2A', None, None], ['3F', ['4D', ['5C', None, None], ['6E', None, None]], ['7G', None, None]]]
>>> po = pre_order(tree)  # ['1B', '2A', '3F', '4D', '5C', '6E', '7G']
>>> io = in_order(tree)  # ['2A', '1B', '5C', '4D', '6E', '3F', '7G']
>>> tree == coding_problem_48(io, po)
True