<>求第一条最长路径长度并输出路径

* 算法思想
利用递归遍历思想,先求出二叉树最长路径也就是当前树的高度
再调用求路径长度的函数判断指针走向输出路径 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); }
* 运行结果

技术
今日推荐
下载桌面版
GitHub
百度网盘(提取码:draw)
Gitee
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:766591547
关注微信