# 543. Diameter of Binary Tree
Question link is here.
# Question
Given the root
of a binary tree, return the length of the diameter of the tree.
The diameter of a binary tree is the length of the longest path between any two nodes in a tree. This path may or may not pass through the root
.
The length of a path between two nodes is represented by the number of edges between them.
Example 1:
Input: root = [1,2,3,4,5]
Output: 3
Explanation: 3 is the length of the path [4,2,1,3] or [5,2,1,3].
Example 2:
Input: root = [1,2]
Output: 1
# Solution
Simple recursion dfs problem. The max diameter is always the left_depth + right_depth of some node.
# Java
import java.lang.*;
class Solution {
public int ans = 0;
public int helper(TreeNode node) {
if(node == null)
return 0;
int left = helper(node.left);
int right = helper(node.right);
ans = Math.max(ans, left + right);
return Math.max(left, right) + 1;
}
public int diameterOfBinaryTree(TreeNode root) {
helper(root);
return ans;
}
}
# Python
class Solution:
def helper(self, node):
if node is None:
return 0
else:
left = self.helper(node.left)
right = self.helper(node.right)
self.ans = max(self.ans, left + right)
return max(left, right) + 1
def diameterOfBinaryTree(self, root: Optional[TreeNode]) -> int:
self.ans = 0
self.helper(root)
return self.ans
#
Time Complexity .