Leetcode543. 二叉树的直径(HOT100)

链接

代码:

cpp 复制代码
class Solution {
public:
    int res = 0;
    int diameterOfBinaryTree(TreeNode* root) {
        dfs(root);
        return res;
    }
    int dfs(TreeNode* root){
        if(!root)return 0;
        int left = dfs(root->left),right = dfs(root->right);
        res = max(res,left+right);
        return max(left,right)+1;
    }
};

题解:

要求最大直径,其实有点类似于深度,以root节点为例,直径最大就是左子树的3+右子树的4,答案就是7。

对于二叉树来说,我们使用dfs遍历所有点,自下而上,把子节点的值返回给父节点,最终算出整个树的最大直径。

还有一个注意的点:给上一层返回的时候应该返回多少?当然是你往左走(left的值)和往右走(right)的值的最大值,然后再加上1--------上一层来到当前节点,也需要走一步。

相关推荐
淡忘旧梦11 分钟前
词错误率/WER算法讲解
人工智能·笔记·python·深度学习·算法
狐5721 分钟前
2026-01-21-牛客每日一题-静态区间和(前缀和)
笔记·算法
2401_8414956423 分钟前
【Python高级编程】单词统计与查找分析工具
数据结构·python·算法·gui·排序·单词统计·查找
Bruce_kaizy36 分钟前
c++ dfs搜索算法——剪枝
c++·深度优先·剪枝
源代码•宸43 分钟前
Leetcode—3. 无重复字符的最长子串【中等】
经验分享·后端·算法·leetcode·面试·golang·string
范纹杉想快点毕业1 小时前
嵌入式工程师一年制深度进阶学习计划(纯技术深耕版)
linux·运维·服务器·c语言·数据库·算法
-To be number.wan1 小时前
【数据结构真题解析】哈希表高级挑战:懒惰删除、探测链断裂与查找正确性陷阱
数据结构·算法·哈希算法
历程里程碑1 小时前
哈希2:字母异位符分组
算法·leetcode·职场和发展
AI科技星1 小时前
统一场论理论下理解物体在不同运动状态的本质
人工智能·线性代数·算法·机器学习·概率论
txinyu的博客1 小时前
sprintf & snprintf
linux·运维·算法