二叉树中相距最远的两个节点之间的距离
来源:互联网 发布:美国网络中立 编辑:程序博客网 时间:2024/06/08 00:39
递归解法:
(1)如果二叉树为空,返回0,同时记录左子树和右子树的深度,都为0
(2)如果二叉树不为空,最大距离要么是左子树中的最大距离,要么是右子树中的最大距离,要么是左子树节点中到根节点的最大距离+右子树节点中到根节点的最大距离,同时记录左子树和右子树节点中到根节点的最大距离。
intGetMaxDistance(BinaryTreeNode* pRoot,int& maxLeft,int& maxRight)
{
//maxLeft, 左子树中的节点距离根节点的最远距离
//maxRight, 右子树中的节点距离根节点的最远距离
if(pRoot== NULL)
{
maxLeft =0;
maxRight =0;
return0;
}
int maxLL, maxLR, maxRL, maxRR;
int maxDistLeft, maxDistRight;
if(pRoot->m_pLeft!= NULL)
{
maxDistLeft=GetMaxDistance(pRoot->m_pLeft, maxLL, maxLR);
maxLeft = max(maxLL, maxLR)+1;
}
else
{
maxDistLeft=0;
maxLeft =0;
}
if(pRoot->m_pRight!= NULL)
{
maxDistRight=GetMaxDistance(pRoot->m_pRight, maxRL, maxRR);
maxRight = max(maxRL, maxRR)+1;
}
else
{
maxDistRight=0;
maxRight =0;
}
return max(max(maxDistLeft,maxDistRight), maxLeft+maxRight);
}
- 二叉树中相距最远的两个节点之间的距离
- 二叉树中相距最远的两个节点之间的距离
- 二叉树中相距最远的两个节点之间的距离
- 求二叉树中节点的最大距离 即二叉树中相距最远的两个节点之间的距离
- 二叉树的两个节点之间最远的距离
- 求一颗二叉树中最远的两个节点的距离
- 求二叉树中最远的两个节点的距离
- 求二叉树中最远的两个节点的距离
- ~求二叉树中最远的两个节点的距离~
- 求二叉树中最远的两个节点的距离
- 求二叉树中两个节点最远的距离
- 二叉树中最远两个节点的距离
- 二叉树系列——二叉树的最大距离(即相距最远的两个叶子节点,编程之美,百度面试题)
- 在二叉树中,距离最远的两个节点的距离
- 在二叉树中,找到距离最远的两个节点的距离
- 在二叉树中,找到距离最远的两个节点的距离
- Java实现:在二叉树中,求距离最远的两个节点的距离
- 查找二叉树最远两个节点的距离
- 卷积特征提取与池化(Pooling)——处理大型图像
- php + mysql 分布式事务(xa)
- hdu 1200 To and Fro
- JAVA:Stack栈和Heap堆的区别
- NYOJ44,子串和
- 二叉树中相距最远的两个节点之间的距离
- JNI学习积累之一 ---- 常用函数大全
- 阿斯达四大四大
- python对象与json
- java使用android aapt获取APK信息
- 归并排序
- c语言调试
- 百度地图Unknown class BMKMapView in Interface Builder file.
- java 操作excel,jxl加边框,jxl合并单元格,单元格的设置,单元格居中