# Diameter of Binary Tree – Leetcode Solution

In this post, we are going to solve the 543. Diameter of Binary Tree problem of Leetcode. This problem 543. Diameter of Binary Tree is a Leetcode easy level problem. Let’s see the code, 543. Diameter of Binary Tree – Leetcode Solution.

Contents

## Problem

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``````

### Constraints

• The number of nodes in the tree is in the range `[1, 104]`.
• `-100 <= Node.val <= 100`

Now, let’s see the code of 543. Diameter of Binary Tree – Leetcode Solution.

# Diameter of Binary Tree – Leetcode Solution

### 543. Diameter of Binary Tree – Solution in Java

```/**
* Definition for a binary tree node.
* public class TreeNode {
*     int val;
*     TreeNode left;
*     TreeNode right;
*     TreeNode() {}
*     TreeNode(int val) { this.val = val; }
*     TreeNode(int val, TreeNode left, TreeNode right) {
*         this.val = val;
*         this.left = left;
*         this.right = right;
*     }
* }
*/
class Solution {

public int heightOfTree(TreeNode root, int[] diameter){
if(root == null) return 0;

int lht = heightOfTree(root.left,diameter);
int rht = heightOfTree(root.right,diameter);

diameter[0] = Math.max(diameter[0],lht+rht);
return 1 + Math.max(lht,rht);
}
public int diameterOfBinaryTree(TreeNode root) {
if(root == null) return 0;
int[] dia = new int[1];
heightOfTree(root,dia);
return dia[0];
}
}```

### 543. Diameter of Binary Tree – Solution in C++

```int diameterOfBinaryTree(TreeNode* root) {
int d=0;
rec(root, d);
return d;
}

int rec(TreeNode* root, int &d) {
if(root == NULL) return 0;
int ld = rec(root->left, d);
int rd = rec(root->right, d);
d=max(d,ld+rd);
return max(ld,rd)+1;
}```

### 543. Diameter of Binary Tree – Solution in Python

```class Solution(object):
def diameterOfBinaryTree(self, root):
"""
:type root: TreeNode
:rtype: int
"""
self.ans = 0

def depth(p):
if not p: return 0
left, right = depth(p.left), depth(p.right)
self.ans = max(self.ans, left+right)
return 1 + max(left, right)

depth(root)
return self.ans```

Note: This problem 543. Diameter of Binary Tree is generated by Leetcode but the solution is provided by CodingBroz. This tutorial is only for Educational and Learning purpose.