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

LC 543. Diameter of Binary Tree

题目描述

Leetcode 543 给定一个二叉树返回所有二叉树中两个点之间的最长路径,两个点可以是任意两个点

题目思路

可以采用分治法的方式,递归中返回到当前点时的最大距离,记录左右子树到当前节点的距离,然后在当前节点有两种处理方法:1.合并左右返回的最大距离与当前最长路径打擂台 2. 去左右返回的最大距离中最大的继续向上找可能更大的结果

代码如下

class Solution {
public:
    int res = 0;
    int diameterOfBinaryTree(TreeNode* root) {
        dfs(root);
        return res;
    }

    int dfs(TreeNode* root) {
        if (!root) return 0;

        int l = dfs(root->left);
        int r = dfs(root->right);

        res = max(res, l+r);
        return max(l+1, r+1);
    }
};

时间复杂度:O(N) N为所有节点个数

空间复杂度:O(H) H为递归深度


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

相关文章:

  • 【如何用更少的数据作出更好的决策】-gpt生成
  • 【IDER、PyCharm】免费AI编程工具完整教程:ChatGPT Free - Support Key call AI GPT-o1 Claude3.5
  • PH热榜 | 2024-11-22
  • 游戏陪玩系统开发功能需求分析
  • react中Fragment的使用场景
  • UE5 5.1.1创建C++项目,显示error C4668和error C4067的解决方法
  • 【linux】(16)date命令
  • Collecting package metadata (current_repodata.json): ...working... done
  • 【算法】计算程序执行时间(C/C++)
  • AI赋能电商:构建高效、智能化的新零售生态
  • 【ubuntu】开机进入initramfs,无法开机
  • SpringBoot中小企业人事管理系统:设计模式
  • 【unity小技巧】Unity 四叉树算法实现空间分割、物体存储并进行查询和碰撞检测
  • qt+opengl 三维物体加入摄像机
  • Qt交叉编译x86和arm心得
  • Thymeleaf模板引擎生成的html字符串转换成pdf
  • 理论结合实践:用Umami构建网站分析系统
  • 什么是计算机网络
  • 关于SpringBoot集成Kafka
  • 【系统设计】设计一个系统时,需要考虑的关键因素
  • Vue3中的祖孙组件通信——provideinject
  • centos7.9搭建k8s集群
  • [数组双指针] 0345. 反转字符串中的元音字母
  • 区号查询免费API接口教程
  • 提成制是什么?如何高效管理提成制?
  • useEffect、useCallback、useMemo和memo的区别