力扣(2024.08.08)

  1. 101:对称二叉树
python 复制代码
# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def isSymmetric(self, root: Optional[TreeNode]) -> bool:
        def dfs(node, level, res):
            if len(res) == level:
                res.append([])
            if not node:
                res[level].append('None')
            else:
                res[level].append(node.val)
                dfs(node.left, level + 1, res)
                dfs(node.right, level + 1, res)

        res = []
        level = 0
        dfs(root, level, res)
        for i in res:
            if i[::-1] != i:
                return False
        return True
  1. 100:相同的树
python 复制代码
# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def isSameTree(self, p: Optional[TreeNode], q: Optional[TreeNode]) -> bool:
        def dfs(node, level, res):
            if len(res) == level:
                res.append([])
            if not node:
                res[level].append('None')
            else:
                res[level].append(node.val)
                dfs(node.left, level + 1, res)
                dfs(node.right, level + 1, res)

        res1 = []
        res2 = []
        level = 0
        dfs(p, level, res1)
        dfs(q, level, res2)
        return res1 == res2
  1. 559:N叉树的最大深度
python 复制代码
"""
# Definition for a Node.
class Node:
    def __init__(self, val=None, children=None):
        self.val = val
        self.children = children
"""

class Solution:
    def maxDepth(self, root: 'Node') -> int:
        def dfs(node, level, res):
            if not node:
                return
            if len(res) == level:
                res.append([])
            res[level].append(node.val)
            for child in node.children:
                dfs(child, level + 1, res)
        
        res = []
        level = 0
        dfs(root, level, res)
        return len(res)
  1. 111:二叉树的最小深度
python 复制代码
# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def minDepth(self, root: Optional[TreeNode]) -> int:
        def dfs(node):
            if not node:
                return 0
            if node.left and not node.right:
                return 1 + dfs(node.left)
            elif not node.left and node.right:
                return 1 + dfs(node.right)
            elif not node.left and not node.right:
                return 1
            elif node.left and node.right:
                return 1 + min(dfs(node.left), dfs(node.right))

        res = dfs(root)
        return res
相关推荐
Superstarimage3 分钟前
使用conda创建python虚拟环境,并自定义路径
windows·python·conda
菜鸡码农,喵。4 分钟前
已经装了pygame但pycharm显示没有该模块/软件包无法加载出来下载pygame
python·pycharm·pygame
JeffersonZU5 分钟前
【数据结构】2-3-2 单链表的插入删除
数据结构
m0_738206549 分钟前
嵌入式学习的第二十二天-数据结构-栈+队列
数据结构·学习
小羊Linux客栈10 分钟前
自动化:批量文件重命名
运维·人工智能·python·自动化·游戏程序
远瞻。1 小时前
【论文阅读】人脸修复(face restoration ) 不同先验代表算法整理2
论文阅读·算法
shykevin3 小时前
python开发Streamable HTTP MCP应用
开发语言·网络·python·网络协议·http
漫路在线4 小时前
JS逆向-某易云音乐下载器
开发语言·javascript·爬虫·python
先做个垃圾出来………4 小时前
哈夫曼树(Huffman Tree)
数据结构·算法
phoenix@Capricornus6 小时前
反向传播算法——矩阵形式递推公式——ReLU传递函数
算法·机器学习·矩阵