剑指Offer(Python多种思路实现):二叉树的镜像
面试27题:
题目:二叉树的镜像
题:操作给定的二叉树,将其变换为源二叉树的镜像。
输入描述:
二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5
解题思路一:递归
class Solution:
def Mirror(self, root):
# write code here
if not root:
return
if not root.left and not root.right:
return
pTemp=root.left
root.left=root.right
root.right=pTemp
if root.left:
self.Mirror(root.left)
if root.right:
self.Mirror(root.right)
解题思路二:迭代
def Mirror(self, root):
stack = root and [root]
while stack:
n = stack.pop()
if n:
n.left, n.right = n.right, n.left
stack += n.right, n.left