class Solution {
int max;
public int diameterOfBinaryTree(TreeNode root) {
//分析下,二叉树的最长路径某个结点的左孩子最大深度加右孩子的最大深度
max=0;
dfs(root);
return max;
}
/**
* 返回树的深度
*/
private int dfs(TreeNode root) {
if (root==null){
return 0;
}
//左子树的深度
int lDeep= dfs(root.left);
//右子树的深度
int rDeep= dfs(root.right);
max=Math.max(max,lDeep+rDeep);
return Math.max(lDeep,rDeep)+1;
}
}