当前位置: 首页 > news >正文

leetcode--hot100--思路+知识点(II)

31.二叉树中序遍历

给定一个二叉树的根节点 root ,返回 它的 中序 遍历 

输入:root = [1,null,2,3]
输出:[1,3,2]

知识点

遍历方式核心顺序
前序根 → 左 → 右
中序左 → 根 → 右
后序左 → 右 → 根

struct TreeNode {
int val;                // 节点存储的值(此处以int为例,可根据需求修改类型)
TreeNode *left;         // 指向左子树的指针
TreeNode *right;        // 指向右子树的指针

    // 构造函数:初始化节点值,左、右子树默认为空
TreeNode() : val(0), left(nullptr), right(nullptr) {}
TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
};

代码

class Solution {

public:

    vector<int> inorderTraversal(TreeNode* root) {

        vector<int> result;

        inorderHelper(root, result);//中序遍历

        return result;

    }

    void inorderHelper(TreeNode* node, vector<int>& result) {

        if (node == nullptr) return;

        inorderHelper(node->left, result); // 访问左子树

        result.push_back(node->val); // 访问根节点

        inorderHelper(node->right, result); // 访问右子树

    }

};

32.二叉树的最大深度

给定一个二叉树 root ,返回其最大深度。

二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。

class Solution {

    public:

    int maxDepth(TreeNode* root) {

        if (!root) return 0; // 空节点深度为0

        int left_depth = maxDepth(root->left); // 左子树深度

        int right_depth = maxDepth(root->right); // 右子树深度

        return 1 + max(left_depth, right_depth); // 当前节点深度

    }

};

33.反转二叉树

给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。

输入:root = [4,2,7,1,3,6,9]
输出:[4,7,2,9,6,3,1]

class Solution {

public:

    TreeNode* invertTree(TreeNode* root) {

        if (root == nullptr) return nullptr;

       

        // 递归翻转左子树

        TreeNode* left = invertTree(root->left);

        // 递归翻转右子树

        TreeNode* right = invertTree(root->right);

       

        // 交换左右子树

        root->left = right;

        root->right = left;

       

        return root;

    }

};

34.对称二叉树

给你一个二叉树的根节点 root , 检查它是否轴对称。

输入:root = [1,2,2,3,4,4,3]
输出:true

35.二叉树的直径

给你一棵二叉树的根节点,返回该树的 直径 。

二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。

两节点之间路径的 长度 由它们之间边数表示。

输入:root = [1,2,3,4,5]
输出:3
解释:3 ,取路径 [4,2,1,3] 或 [5,2,1,3] 的长度。
http://www.dtcms.com/a/565221.html

相关文章:

  • react antdesign实现表格嵌套表单
  • 3D 技术赋能制造企业精准高效装配生产
  • 山东网站建设app江门住房和城乡建设部网站
  • 数据线厂家东莞网站建设wordpress mysql用户名
  • 4G摄像头行业新风向:AI+低功耗+全球化驱动
  • IDEA / DataGrip 连接 SQL Server 提示“驱动程序无法通过 SSL 加密建立安全连接”的解决方法
  • 【11408学习记录】制胜考研英语阅读:拆解2018真题长难句(含三步核心分析法)​
  • # 数学符号参考手册大全
  • Dremio查询加速技术全解析
  • 黄页营销网站视频免费大全免费的网站模板下载
  • Go语言设计模式:观察者模式详解
  • 什么是音频码率?音频码率128kbps怎么设置?
  • 2026版基于python大数据的旅游可视化及推荐系统
  • 企业财务智能体架构解析:从RPA自动化到AI风控协同
  • 北京seo不到首页不扣费厦门seo顾问屈兴东
  • 玩转Rust高级应用 如何进行理解Refutability(可反驳性): 模式是否会匹配失效
  • Excel怎么快速合并当前工作簿下的所有工作表?
  • 网站建设捌金手指花总十六永久链接生成器
  • Nestjs框架: 微服务事件驱动通信与超时处理机制优化基于Event-Based 通信及异常捕获实践
  • html网站建设案例杭州发布官网
  • C语言实现观察者模式
  • JAVA算法练习题day62
  • SAP PP 生产报废单传输接口分享
  • 数据结构——三十八、查找的基本概念(王道408)
  • 深蓝学院 概率图模型
  • Kanass零基础学习,如何快速导入Jira、Mantis数据
  • 漳州网站建设多少钱创业计划书模板
  • linux vscode+cmake+clangd
  • 如何在 Linux 中获取更多信息
  • equals()与hashCode()之间的关系