Example #1
0
def list_to_tree(l):
    if not l:  return None
    mid = (len(l)-1)/2
    n = Node(l[mid])
    n.left = list_to_tree(l[:mid])
    n.right = list_to_tree(l[(mid+1):])
    return n
Example #2
0
 def recurse(l,left,right):
     if left > right: return None
     mid = (left+right)/2
     n = Node(l[mid])
     n.left = recurse(l,left,mid-1)
     n.right = recurse(l,mid+1,right)
     return n
Example #3
0
 def double(node):
     if not node: return
     n = Node(node.val)
     old_left = node.left
     n.left = old_left
     node.left = n
     double(old_left)
     double(node.right)
Example #4
0
def list_to_tree_parent(l):
    if not l:  return None
    mid = (len(l)-1)/2
    n = Node(l[mid])
    n.parent = None
    n.left = list_to_tree_parent(l[:mid])
    if n.left: n.left.parent = n
    n.right = list_to_tree_parent(l[(mid+1):])
    if n.right: n.right.parent = n
    return n