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

C++速通LeetCode简单第12题-二叉树的直径

递归:

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     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:
    int ans;
    int diameterOfBinaryTree(TreeNode* root) {
        ans = 1;
        depth(root);
        return ans-1;//-1是因为根节点不用再上溯一次根节点了,depth里面多了一次上溯加一操作
    }

    int depth(TreeNode* root){
        if(root == nullptr) return 0;
        int l = depth(root->left);
        int r = depth(root->right);
        if(l+r+1 > ans) ans = l+r+1;
        return max(l,r) + 1;//到底后返回上一节点,这时候子树depth要加1,因为子树跟跟节点之间有一步距离
    }
};


http://www.kler.cn/a/305229.html

相关文章:

  • springboot vue uniapp 仿小红书 1:1 还原 (含源码演示)
  • 32单片机从入门到精通之安全性与可靠性——防护措施(十八)
  • CF 371A.K-Periodic Array(Java实现)
  • 第三十六章 Spring之假如让你来写MVC——拦截器篇
  • 【大模型】Langchain-Chatchat-v0.3.1 的环境配置
  • WPF系列八:图形控件Path
  • 深度学习-目标检测(四)-Faster R-CNN
  • C#实现串口中继
  • 不废话简单易懂的Selenium 页面操作与切换
  • Python实现一个简单的爬虫程序(爬取图片)
  • postgresql 导出CSV格式数据
  • 电脑连手机热点,上不了网
  • CSS 响应式设计(补充)——WEB开发系列36
  • [数据集][图像分类]痤疮严重程度分级分类数据集999张3类别
  • QT学习第五天
  • mysql workbench 如何访问远程数据库
  • 快手手撕 力扣2487 从链表中移除节点 单调栈 递归
  • HTTP 请求方式`application/x-www-form-urlencoded` 与 `application/json` 怎么用?有什么区别?
  • C++编译环境(IDE)推荐及安装
  • 美国硅谷大带宽服务器带宽堵塞解决方案
  • Oracle发邮件功能:设置的步骤与注意事项?
  • 【Oracle】TIMESTAMP类型时间计算时间差
  • SprinBoot+Vue宠物共享平台的设计与实现
  • 性能诊断的方法(五):架构和业务诊断
  • 前端下载word、excel文件的两种方法
  • [数据集汇总]智慧交通-铁路相关数据集汇总