2013-03-10 13 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 

를 작성, 당신은 순서 중 하나에서 재귀 수 (중 부모 전후에 잎을 반대).

관련 문제