leetCode543 二叉树的直径
从根节点开始遍历,依次找到左子树的最大路径和右子树的最大路径。树的直径则为左子树最大路径和右子树最大路径之和。
public class leetCode543 {
int distance = 0;
public int diameterOfBinaryTree(TreeNode root) {
if (root == null) {
return 0;
}
maxDistance(root);
return distance;
}
public int maxDistance(TreeNode root) {
if (root == null) {
return 0;
}
int left = maxDistance(root.left);
int right = maxDistance(root.right);
if (left + right > distance) {
distance = left + right;
}
return Math.max(left, right) + 1;
}
}