求二叉树中节点的最大距离
struct node{
Node Left;
Node Right;
int MaxLeft;//左子樹到該節點的最長距離
int MaxRight;//右子樹到該節點的最長距離
char chValue;
};
?
?
void FindMaxLen(Node T)
{
int tmpMax = 0;
?
if (NULL == T)
{
return;
}
?
if (NULL == T->Left)
{
T->MaxLeft = 0;
}
?
if (NULL == T->Right)
{
T->MaxLeft = 0;
}
?
if (NULL != T->Left)
{
FindMaxLen(T->Left);
}
?
if (NULL != T->Right)
{
FindMaxLen(T->Right);
}
?
if (NULL != T->Left)
{
if (T->Left->MaxRight < T->Left->MaxLeft)
{
tmpMax = T->Left->MaxLeft + 1;
}
else
{
tmpMax = T->Left->MaxRight + 1;
}
T->MaxLeft = tmpMax;
}
?
if (NULL != T->Right)
{
tmpMax = 0;
if (T->Right->MaxRight < T->Right->MaxLeft)
{
tmpMax = T->Right->MaxLeft + 1;
}
else
{
tmpMax = T->Right->MaxRight + 1;
}
T->MaxRight = tmpMax;
}
?
if (T->MaxLeft + T->MaxRight > MaxLen)
{
MaxLen = T->MaxLeft + T->MaxRight;
}
轉載于:https://www.cnblogs.com/SLVR/p/3419117.html
總結
以上是生活随笔為你收集整理的求二叉树中节点的最大距离的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浏览器重定向(302)次数限制问题
- 下一篇: 实战-Fluxion与wifi热点伪造、