力扣(2024.08.07)

  1. 637:二叉树的层平均值
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 averageOfLevels(self, root: Optional[TreeNode]) -> List[float]:
        def dfs(node, level, res):
            if not node:
                return
            if len(res) == level:
                res.append([])
            res[level].append(node.val)
            dfs(node.left, level + 1, res)
            dfs(node.right, level + 1, res)

        res = []
        level = 0
        dfs(root, level, res)

        final_res = []
        for i in res:
            final_res.append(sum(i) / len(i))
        return final_res
  1. 429:N叉树的层序遍历
python 复制代码
"""
# Definition for a Node.
class Node:
    def __init__(self, val=None, children=None):
        self.val = val
        self.children = children
"""

class Solution:
    def levelOrder(self, root: 'Node') -> List[List[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 res       
  1. 515:在每个树行中找最大值
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 largestValues(self, root: Optional[TreeNode]) -> List[int]:
        def dfs(node, level, res):
            if not node:
                return
            if len(res) == level:
                res.append([])
            res[level].append(node.val)
            dfs(node.left, level + 1, res)
            dfs(node.right, level + 1, res)

        res = []
        level = 0
        dfs(root, level, res)

        final_res = []
        for i in res:
            final_res.append(max(i))
        return final_res
  1. 104:二叉树的最大深度
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 maxDepth(self, root: Optional[TreeNode]) -> int:
        def dfs(node, level, res):
            if not node:
                return
            if len(res) == level:
                res.append([])
            res[level].append(node.val)
            dfs(node.left, level + 1, res)
            dfs(node.right, level + 1, res)

        res = []
        level = 0
        dfs(root, level, res)
        return len(res)
  1. 226:翻转二叉树
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 invertTree(self, root: Optional[TreeNode]) -> Optional[TreeNode]:
        def dfs(node):
            if not node:
                return
            node.left, node.right = node.right, node.left
            dfs(node.left)
            dfs(node.right)

        dfs(root)
        return root
相关推荐
卡次卡次12 分钟前
vibecoding起步之注意点:从零到一:Claude Code 接入飞书文档的完整链路
python
Mikowoo00712 分钟前
机器学习_梯度计算
人工智能·python·机器学习
雪隐16 分钟前
AI股票小助手01-量化交易基础概念
人工智能·后端·python
故事和你9117 分钟前
洛谷-【动态规划2】线性状态动态规划4
开发语言·数据结构·c++·算法·动态规划·图论
不吃土豆的马铃薯20 分钟前
Socket 网络编程实战教程
linux·服务器·开发语言·网络·c++·算法
芝麻开门GEO21 分钟前
2026年Q2济南企业如何选择可靠的GEO服务商
大数据·人工智能·python
AI砖家21 分钟前
Claude Code 跳过确认完全指南:让 AI 自己完成开发任务
前端·人工智能·python·ai编程·代码规范
Dxy123931021622 分钟前
Python 操作 MySQL 事务:从入门到避坑
android·python·mysql
川石课堂软件测试1 小时前
使用mock进行接口测试教程
数据库·python·功能测试·测试工具·华为·单元测试·appium
江南十四行1 小时前
并发编程(四)
开发语言·python