import java.util.*;

public class Solution {
    
    public int num;
    
    public int dfs(TreeNode root){
        if(root == null)return -1;
        if(root.left == null && root.right == null)return 0;
        int x1 = dfs(root.left)+1;
        int x2 = dfs(root.right)+1;
        
        num = Math.max(num,x1+x2);
        
        return Math.max(x1,x2);
    }
    
    public int diameterOfBinaryTree (TreeNode root) {
        // write code here
        if(root == null)return 0;
        dfs(root);
        return num;
    }
}