class TreeNode:
def __init__(self):
self.val = None
self.left = None
self.right = None
def invertTree(root):
if not root:
return None
root.left,root.right=invertTree(root.right),invertTree(root.left)
return root
def arraytotree(arr,start,end):
if start > end:
return None
root=TreeNode()
root.val=arr[start]
root.left=arraytotree(arr,2*start+1,end)
root.right=arraytotree(arr,2*start+2,end)
return root
def printTreeLayer(root):
if root==None:
return
queue=[]
#树根结点进入队列
queue.append(root)
while len(queue)>0:
p=queue.pop(0)
#访问当前结点
print(p.val,end=" ")
#如果这个结点的左孩子不为空则入队列
if p.left!=None:
queue.append(p.left)
#如果这个结点的右孩子不为空则入队列
if p.right!=None:
queue.append(p.right)
if __name__=="__main__":
arr=[4,2,7,1,3,6,9]#输出[4,7,2,9,6,3,1]
root=arraytotree(arr,0,len(arr)-1)
invertTree(root)
print("翻转后二叉树层序遍历结果为:")
printTreeLayer(root)
python:对二叉树进行镜像翻转完整程序,包括数组转二叉树,以及层序遍历输出二叉树
最新推荐文章于 2022-07-27 14:32:43 发布