Python•diameter-of-binary-tree/synced-solution.py
class Solution:
def diameterOfBinaryTree(self, root: Optional[TreeNode]) -> int:
diameter = class="syntax-number">0
def depth(node):
nonlocal diameter
if not node:
return class="syntax-number">0
left = depth(node.left)
right = depth(node.right)
diameter = max(diameter, left + right)
return class="syntax-number">1 + max(left, right)
depth(root)
return diameter
C++•diameter-of-binary-tree/synced-solution.cpp
class Solution {
public:
int diameterOfBinaryTree(TreeNode* root) {
diameter = class="syntax-number">0;
depth(root);
return diameter;
}
private:
int diameter;
int depth(TreeNode* node) {
if (!node) {
return class="syntax-number">0;
}
int left = depth(node->left);
int right = depth(node->right);
diameter = max(diameter, left + right);
return class="syntax-number">1 + max(left, right);
}
};
TypeScript•diameter-of-binary-tree/synced-solution.ts
function diameterOfBinaryTree(root: TreeNode | null): number {
let diameter = class="syntax-number">0;
const depth = (node: TreeNode | null): number => {
if (!node) {
return class="syntax-number">0;
}
const left = depth(node.left);
const right = depth(node.right);
diameter = Math.max(diameter, left + right);
return class="syntax-number">1 + Math.max(left, right);
};
depth(root);
return diameter;
}