当前位置:网站首页>小黑年前实习倒数第二天,又到了开心的疯狂星期四的leetcode之旅:剑指 Offer 27. 二叉树的镜像&&剑指 Offer 28. 对称的二叉树

小黑年前实习倒数第二天,又到了开心的疯狂星期四的leetcode之旅:剑指 Offer 27. 二叉树的镜像&&剑指 Offer 28. 对称的二叉树

2023-01-19 15:19:41小黑无敌

剑指 Offer 27. 二叉树的镜像

小黑代码:深度搜索

# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
    def mirrorTree(self, root: TreeNode) -> TreeNode:
        if not root:
            return
        root.left, root.right = root.right, root.left
        self.mirrorTree(root.left)
        self.mirrorTree(root.right)
        return root

在这里插入图片描述

小黑代码:层次遍历

# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
    def mirrorTree(self, root: TreeNode) -> TreeNode:
        if not root:
            return
        q = collections.deque([root])
        while q:
            top = q.popleft()
            top.left, top.right = top.right, top.left
            if top.left:
                q.append(top.left)
            if top.right:
                q.append(top.right)
        return root

在这里插入图片描述

剑指 Offer 28. 对称的二叉树

小黑代码

# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
    def isSymmetric(self, root: TreeNode) -> bool:
        def dfs(root1, root2):
            if not (root1 or root2):
                return True
            if not (root1 and root2) or root1.val != root2.val:
                return False
            left = dfs(root1.left, root2.right)
            right = dfs(root1.right, root2.left)
            return left and right
        return dfs(root, root)

在这里插入图片描述

层序遍历

# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
    def isSymmetric(self, root: TreeNode) -> bool:
        # 初始化队列
        q = collections.deque([root, root])
        while q:
            top = q.popleft()
            top_re = q.popleft()
            # 全为空
            if not (top or top_re):
                continue
            if not (top and top_re) or top.val != top_re.val:
                return False
            # 左孩子入队
            q.append(top.left)
            q.append(top_re.right)
            # 右孩子入队
            q.append(top.right)
            q.append(top_re.left)
        return True

在这里插入图片描述

小黑生活

下午边干活边学习了区块链python课程的第四章

在这里插入图片描述

晚饭沙县小吃牛腩饭

在这里插入图片描述

吃完买个冰激凌啦

在这里插入图片描述
在这里插入图片描述

晚上去练琴啦,虽然现在不如之前有热情了,但是也要体验体验不同的事物,

在这里插入图片描述

回家的路上寒风中的烤冷面

在这里插入图片描述

夜里按耐不住在厨房里涮起了羊肉,喝起了啤酒

在这里插入图片描述
在这里插入图片描述

活力早餐+跑步

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

肯德基午餐,疯狂星期四还是留给晚上呗~

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

咖啡可颂算法

在这里插入图片描述

原网站

版权声明
本文为[小黑无敌]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_37418807/article/details/128734214

随机推荐