-
Notifications
You must be signed in to change notification settings - Fork 38
Expand file tree
/
Copy pathproblem_48.py
More file actions
24 lines (18 loc) · 822 Bytes
/
problem_48.py
File metadata and controls
24 lines (18 loc) · 822 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
def coding_problem_48(io, po):
"""
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
"""
pass
if __name__ == '__main__':
import doctest
doctest.testmod(verbose=True)