因为树的路径=节点-1
所以可以转化,而节点又可以通过求深度+1求得。大致就是这个思路
例如:给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。
int ans = 0;
public int diameterOfBinaryTree(TreeNode root) {
ans = 1;
maxDepth(root);
return ans -1;
}
public int maxDepth(TreeNode root) {
if(root==null){return 0;}
int l = maxDepth(root.left);
int r = maxDepth(root.right);
ans = Math.max(ans, l+r+1);
int maxlen = Math.max(l, r)+1;
return maxlen;
}