解题思路

递归思考。二叉树的最大距离,要么是经过root节点,要么不经过root节点。对一棵二叉树而言,如果最大距离经过root节点,那么最大距离应该等于左子树的深度+右子树的深度,如果不经过root节点,答案是递归的时候带回的。
假设我们一个函数可以返回以root为根节点的最大距离,那么我们可以通过递归的方式,计算出左子树的深度、左子树的最大距离,右子树的深度,右子树的最大距离。之后比较左子树的最大距离、右子树的最大距离和以root为节点的最大距离即可。