跳到主要内容

543.二叉树的直径

链接:543.二叉树的直径
难度:Easy
标签:树、深度优先搜索、二叉树
简介:给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。

题解 1 - cpp

  • 编辑时间:2022-03-15
  • 执行用时:16ms
  • 内存消耗:19.7MB
  • 编程语言:cpp
  • 解法介绍:dfs 统计左右子树的高度。
class Solution {
public:
int h(TreeNode* node) {
if (!node) return 0;
return max(h(node->left), h(node->right)) + 1;
}
int diameterOfBinaryTree(TreeNode* root) {
if (!root) return 0;
return max(h(root->left) + h(root->right),
max(diameterOfBinaryTree(root->left),
diameterOfBinaryTree(root->right)));
}
};