题目描述
二叉树两个结点的距离是一个结点经过双亲结点,祖先结点等中间结点到达另一个结点经过的分支数。二叉树结点的最大距离是所有结点间距离的最大值。例如,下图所示二叉树结点最大距离是3,C和D的距离。
二叉树用先序遍历顺序创建,#表示空树。计算二叉树结点最大距离和最大距离的两个结点(假设二叉树中取最大距离的两个结点唯一)。
输入
测试次数T
第2行之后的T行,每行为一棵二叉树先序遍历结果(#表示空树)
输出
对每棵二叉树,输出树的结点最大距离和最大距离的结点,输出格式见样例。
样例输入
3
A##
ABC##EF#G###D##
ABEH###F#K###
样例输出
0:
5:G D
4:H K
提示
代码
#include<iostream>
#include<string>
#include<cstring>
using namespace std;
int M[100];
char L[100];
char R[100];
int I = 0;
class BiTreeNode
{
public:
char data;
BiTreeNode* Left;
BiTreeN