1. 程式人生 > >[劍指Offer] 27_二叉樹的映象

[劍指Offer] 27_二叉樹的映象

題目

請完成一個函式,輸入一棵二叉樹,該函式輸出它的映象。

例:

        8                8
       / \              / \
      6  10            10  6
     / \ / \          / \ / \
    5  7 9  11       11 9 7  5

思路

  1. 交換左右子樹,遍歷至葉節點終止即可。
    1. 時間複雜度:O(n)
    2. 空間複雜度:O(1)

程式碼

def mirror_of_binary_tree(root)
: """ :param root: root :return: mirror tree root """ if not root: return root.left, root.right = root.right, root.left mirror_of_binary_tree(root.left) mirror_of_binary_tree(root.right) return root

思考

1.這樣改變了原來樹的結構,如果需要生成一棵新樹的話。