题解 | #二叉树的镜像#

二叉树的镜像

https://www.nowcoder.com/practice/a9d0ecbacef9410ca97463e4a5c83be7

#coding:utf-8
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param pRoot TreeNode类 
# @return TreeNode类
#

class TreeNode:
    def __init__(self, x):
        self.val = x
        self.left = None
        self.right = None

class Solution:
    def Mirror(self , pRoot ):
        # write code here
        pRoot2 = pRoot
        path1 = []
        path2 = []
        #self.dfs(pRoot)
        self.bfs(pRoot)
        return pRoot
    
    def dfs(self, node):
        if node == None:
            return node
        left = self.dfs(node.left)
        right = self.dfs(node.right)
        node.left = right
        node.right = left
        return node

    def bfs(self, node):
        if node == None:
            return node
        stack = []
        stack.append(node)
        while len(stack) > 0:
            cur_node = stack.pop()
            if cur_node.left != None:
                stack.append(cur_node.left)
            if cur_node.right != None:
                stack.append(cur_node.right)
			//交换左右
            tmp = cur_node.left 
            cur_node.left = cur_node.right 
            cur_node.right = tmp
        
        return node





全部评论

相关推荐

不愿透露姓名的神秘牛友
今天 15:58
点赞 评论 收藏
分享
06-20 17:42
东华大学 Java
凉风落木楚山秋:要是在2015,你这简历还可以月入十万,可惜现在是2025,已经跟不上版本了
我的简历长这样
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-08 14:10
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务