当前位置: 首页 > 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

相关文章:

  • MySQ怎么使用语法介绍(详细)
  • 使用HTML、CSS和JavaScript创建动态圣诞树
  • 重新认识HTTPS
  • 蓝凌OA-EKP hrStaffWebService 任意文件读取漏洞
  • 谷歌浏览器的自动翻译功能如何开启
  • 【大数据技术基础 | 实验十】Hive实验:部署Hive
  • 深度学习-目标检测(四)-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文件的两种方法
  • [数据集汇总]智慧交通-铁路相关数据集汇总