The Diameter of Binary Tree solutions are below.
15 Jun 2024•Easy•C++ / Python / TypeScript
Diameter of Binary Tree
C++, Python and TypeScript solutions for Diameter of Binary Tree.
Solution files
Python•diameter-of-binary-tree/synced-solution.py
class Solution:
def diameterOfBinaryTree(self, root: Optional[TreeNode]) -> int:
diameter = 0
def depth(node):
nonlocal diameter
if not node:
return 0
left = depth(node.left)
right = depth(node.right)
diameter = max(diameter, left + right)
return 1 + max(left, right)
depth(root)
return diameter
C++•diameter-of-binary-tree/synced-solution.cpp
class Solution {
public:
int diameterOfBinaryTree(TreeNode* root) {
diameter = 0;
depth(root);
return diameter;
}
private:
int diameter;
int depth(TreeNode* node) {
if (!node) {
return 0;
}
int left = depth(node->left);
int right = depth(node->right);
diameter = max(diameter, left + right);
return 1 + max(left, right);
}
};
TypeScript•diameter-of-binary-tree/synced-solution.ts
function diameterOfBinaryTree(root: TreeNode | null): number {
let diameter = 0;
const depth = (node: TreeNode | null): number => {
if (!node) {
return 0;
}
const left = depth(node.left);
const right = depth(node.right);
diameter = Math.max(diameter, left + right);
return 1 + Math.max(left, right);
};
depth(root);
return diameter;
}