python从控制台接收输入创建二叉树

python创建二叉树,从控制台接收输入,每次只接受一个节点,输入‘#’表示空节点。递归创建。


代码:

class node():
    def __init__(self, k=None, l=None, r=None):
        self.key = k
        self.left = l
        self.right = r

def create(root):
    a = raw_input('enter a key:')
    if a == '#':#这里还是要注意 ==是判断值相等,is是判断是否为一个对象,讲道理python是有常量池的那么‘#’就应该是同一个对象,但是pycharm的py2就是不行
        #为了保险起见 在py2里面如果是判断字符串值相等还是用==,别骚操作用is了
        return None  #####这个return很重要
    else:
        root = node(k=a)
        root.left = create(root.left)
        root.right = create(root.right)
        return root  ####这个return很重要
    return root
if __name__ == '__main__': root= None root1=create(root)

把这一篇和我后一篇从列表创建二叉树的文章结合起来看,更好理解递归的思想 http://blog.csdn.net/lznsay/article/details/78710257


你可能感兴趣的:(python从控制台接收输入创建二叉树)