# [543. Diameter of Binary Tree](https://leetcode.com/problems/diameter-of-binary-tree/) # 思路 求二叉树的直径,所谓直径就是两点之间的最远距离。对于树中的每个节点,我们都可以计算出经过该节点的两点间的最远距离(就等于其左子树的高加上右子树的高)。计算左右子树的高就是一个中序遍历。 时空复杂度均为O(n) # C++ ``` C++ class Solution { private: int res = 0; int inorder(TreeNode *root){ if(!root) return 0; int l = inorder(root -> left); int r = inorder(root -> right); res = max(res, l + r); return 1 + max(l, r); } public: int diameterOfBinaryTree(TreeNode* root) { inorder(root); return res; } }; ```