力扣(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
相关推荐
2501_9475758015 小时前
计算机毕业设计之jsp开山车行二手车交易系统
java·开发语言·hadoop·python·信息可视化·django·课程设计
古城小栈16 小时前
为啥说:训练用BF16,推理用FP16
人工智能·算法·机器学习
KaMeidebaby16 小时前
卡梅德生物技术快报|蛋白 N 端测序在重组贻贝融合蛋白表征中的应用,解决原核表达序列偏移工艺难题
前端·人工智能·物联网·算法·百度
Byron__16 小时前
AI学习_06_短期记忆与长期记忆
人工智能·python·学习
Turbo正则17 小时前
群论在AI中的应用概述
人工智能·算法·抽象代数
ysa05103017 小时前
【并查集】判环
c++·笔记·算法
Jerry17 小时前
KeetCode 44. 开发商购买土地
算法
取经蜗牛17 小时前
Python 第一阶段完全指南:从零到第一个实用工具
开发语言·python
创世宇图17 小时前
【Python工程化实战】OpenTelemetry 在 Python 中的全链路追踪落地:从埋点到可视化的完整实战指南
python·分布式链路追踪·性能监控·opentelemetry·微服务可观测性
Jerry18 小时前
KeetCode 58. 区间和
算法