python:对二叉树进行镜像翻转完整程序,包括数组转二叉树,以及层序遍历输出二叉树

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)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值