# your code goes here
class Node:
def __init__(self, data):
self.data = data
self.left = None
self.right = None
def buildtree(inorder, preorder, instart, intend):
if instart>inend:
return None
preorderval = preorder[buildtree.preindex]
buildtree.preindex+=1
Nodet = Node(preorderval)
if instart == intend:
return Nodet
invalindex = search(inorder, instart, intend, preorderval)
Nodet.left = Buildtree(inorder, preorder, instart, invalindex-1)
Nodet.right = Buildtree(inorder, preorder, invalindex+1, intend)
return Nodet
def search(inorder, instart, intend, preorderval):
for i in range(intstart, intend):
if inorder[i] == preorderval:
return i
inorder = ['D', 'B', 'E', 'A', 'F', 'C']
preOrder = ['A', 'B', 'D', 'E', 'C', 'F']
#static variable for the function
buildtree.preindex = 0
Nodett = Buildtree(inorder, preOrder, 0, len(inorder)-1)
#print(Nodet.data)
IyB5b3VyIGNvZGUgZ29lcyBoZXJlCmNsYXNzIE5vZGU6CglkZWYgX19pbml0X18oc2VsZiwgZGF0YSk6CgkJc2VsZi5kYXRhID0gZGF0YQoJCXNlbGYubGVmdCA9IE5vbmUKCQlzZWxmLnJpZ2h0ID0gTm9uZQoJCQoKZGVmIGJ1aWxkdHJlZShpbm9yZGVyLCBwcmVvcmRlciwgaW5zdGFydCwgaW50ZW5kKToKCQoJaWYgaW5zdGFydD5pbmVuZDoKCQlyZXR1cm4gTm9uZQoJCQoJcHJlb3JkZXJ2YWwgPSBwcmVvcmRlcltidWlsZHRyZWUucHJlaW5kZXhdCglidWlsZHRyZWUucHJlaW5kZXgrPTEKCQoJTm9kZXQgPSBOb2RlKHByZW9yZGVydmFsKQoJaWYgaW5zdGFydCA9PSBpbnRlbmQ6CgkJcmV0dXJuIE5vZGV0CgkKCWludmFsaW5kZXggPSBzZWFyY2goaW5vcmRlciwgaW5zdGFydCwgaW50ZW5kLCBwcmVvcmRlcnZhbCkKCQoJTm9kZXQubGVmdCA9IEJ1aWxkdHJlZShpbm9yZGVyLCBwcmVvcmRlciwgaW5zdGFydCwgaW52YWxpbmRleC0xKQoJTm9kZXQucmlnaHQgPSBCdWlsZHRyZWUoaW5vcmRlciwgcHJlb3JkZXIsIGludmFsaW5kZXgrMSwgaW50ZW5kKQoJCglyZXR1cm4gTm9kZXQKCmRlZiBzZWFyY2goaW5vcmRlciwgaW5zdGFydCwgaW50ZW5kLCBwcmVvcmRlcnZhbCk6Cglmb3IgaSBpbiByYW5nZShpbnRzdGFydCwgaW50ZW5kKToKCQlpZiBpbm9yZGVyW2ldID09IHByZW9yZGVydmFsOgoJCQlyZXR1cm4gaQoJCgkKaW5vcmRlciA9IFsnRCcsICdCJywgJ0UnLCAnQScsICdGJywgJ0MnXSAKcHJlT3JkZXIgPSBbJ0EnLCAnQicsICdEJywgJ0UnLCAnQycsICdGJ10gCgojc3RhdGljIHZhcmlhYmxlIGZvciB0aGUgZnVuY3Rpb24KYnVpbGR0cmVlLnByZWluZGV4ID0gMAoKTm9kZXR0ID0gQnVpbGR0cmVlKGlub3JkZXIsIHByZU9yZGVyLCAwLCBsZW4oaW5vcmRlciktMSkKI3ByaW50KE5vZGV0LmRhdGEpCgoKCg==