2013-03-10 35 views
1

这是给定二叉搜索树根的代码,就是创建它的镜像。镜像二进制搜索树

def mirror(root): 
    if root is None: 
     pass 
    else: 
     mirror(root.left) 
     mirror(root.right) 
     temp = root.left 
     root.left = root.right 
     root.right = temp 

首先,这是正确的代码,也就是在这里应该先得到树的叶子,然后再展开时切换引用递归?

回答

5

这是对的,但不是很嗜好。

最好只写

def mirror(root): 
    if root is None: 
     return 
    mirror(root.left) 
    mirror(root.right) 
    root.left, root.right = root.right, root.left 

对于这个问题,你可以以任何顺序递归(无论是倒车父母之前或之后的叶子)。