二叉树的镜像
二叉树的镜像
FollowMee 发表于5个月前
二叉树的镜像
  • 发表于 5个月前
  • 阅读 1
  • 收藏 0
  • 点赞 0
  • 评论 0

二叉树的镜像

题目内容:操作给定的二叉树,将其变换为源二叉树的镜像

解法:二叉树的遍历操作

  • 递归方法
# -*- coding:utf-8 -*-
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None
class Solution:
    # 返回镜像树的根节点
    def Mirror(self, root):
        # write code here
        if not root or (not root.left and not root.right):
            return root
        root.left, root.right = root.right, root.left
        if root.left:
            self.Mirror(root.left)
        if root.right:
            self.Mirror(root.right)
        return root
  • 非递归方法,二叉树的层次遍历
# -*- coding:utf-8 -*-
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None
class Solution:
    # 返回镜像树的根节点
    def Mirror(self, root):
        # write code here
        if not root or (not root.left and not root.right):
            return root
        temp = [] 
        temp.append(root)
        while(temp):
            node = temp.pop()
            if (node.left or node.right):
                node.left, node.right = node.right, node.left
            if (node.left):
                temp.append(node.left)
            if (node.right):
                temp.append(node.right)
        return root

 

标签: Python 算法
共有 人打赏支持
粉丝 2
博文 8
码字总数 2003
×
FollowMee
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: