<>求第一条最长路径长度并输出路径
* 算法思想
利用递归遍历思想,先求出二叉树最长路径也就是当前树的高度
再调用求路径长度的函数判断指针走向输出路径 int LongestPath(BiTree *T){ //求出当前二叉树的最长路径 if(T==0)
return 0; if(T->lchild==0&&T->rchild==0) return 1; int L=LongestPath(T->lchild);
int R=LongestPath(T->rchild); return (L>R?L:R)+1; } void Long(BiTree *T){
//输出路径函数 if(T==0) return; printf(" %c",T->data); //相当于先序 int L=LongestPath(T->
lchild);//计算左子树的高度 int R=LongestPath(T->rchild);//计算右子树的高度 if(L>=R) Long(T->
lchild);//根据左右子树的高度决定走向 else Long(T->rchild); }
* 运行结果