542
这道题的思路优点难想,两个节点之间的距离是节点数-1,所以问题可以转化为求取节点数最多的情况。每一个路径都是由某一个中间节点开始,从左边到右边,这样的话最多节点的路径问题可以转化为求取左右两边深度最大的和(这个中间节点不一定是根节点)。这样就可以使用递归,采用后序遍历,先到达左边的最下面的节点,最下面的节点也是一颗二叉树,取得最下面二叉树的深度之后依次向上返回。
102
这道题是广度优先搜索,思路是:定义一个队列,将根节点加入到队列中,计算此时队列的长度,然后依次将队列里面的元素弹出,在结束循环之间,把弹出的左右节点加入到队列中,这个操作就完成相当于层次化地把节点加入到队列中。
108
这道题为了保持左右数量的对称,所以应该每次选择中间的节点作为根节点,中间节点的左边作为左子树,右边作为右子树。在左右子树中采用同样的分割方法。