力扣(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
相关推荐
维克兜率天1 小时前
【维克】复合型CTA:趋势+套利的双轮驱动
python·学习方法
伞伞悦读1 小时前
【第76期】两张3行表左连接变5行:主键、validate与未匹配排查完整教程
人工智能·python
用户8356290780512 小时前
使用 Python 在 Excel 中添加和自定义迷你图
后端·python
老师我太想进步了20262 小时前
【数据结构-4】算法美学之顺序表
数据结构·算法
用户8356290780512 小时前
使用 Python 在 Excel 图表中添加趋势线与回归方程
后端·python
风影同志783242 小时前
编码器是激活函数吗?—— 一个看起来很像、其实不是的类比
算法
特立独行的猫A2 小时前
一份 Markdown 发十个平台:cspub 一稿多投
java·后端·python
UIU1142 小时前
P1481 魔族密码
c++·算法·动态规划
深蓝AI3 小时前
HTTPX 超时 1 秒,接口为何还能跑 2.4 秒?
python
CyrusYiVPP3 小时前
哪个用户会再来买?RFM模型+plotly画出用户分层,数据分析实战第2期
人工智能·python