二叉樹中相距最遠的兩個節點之間的距離
遞迴解法:
(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二叉樹排序及任意兩點個節點間的最大距離Java二叉樹排序
- 求二叉樹的給定兩個結點之間的距離二叉樹
- 二叉樹任意兩個節點間的最大距離(Java,LeetCode 543二叉樹的直徑 遞迴)二叉樹JavaLeetCode遞迴
- 計算地圖中兩點之間的距離地圖
- 二叉樹兩個節點的公共節點二叉樹
- 二叉樹中兩個節點的最低公共祖先二叉樹
- sql 計算兩個經緯度點之間的距離SQL
- 二叉樹:距離最近的共同祖先二叉樹
- 根據經緯度計算兩點之間的距離的公式公式
- 二叉樹最大距離(直徑)二叉樹
- 利用空間資料庫求兩點距離資料庫
- C語言:使用函式計算兩點間的距離C語言函式
- 微信小程式——計算2點之間的距離微信小程式
- 定義Point類,採用友元類的方式計算兩個點之間的水平和垂直距離
- Java中在二叉搜尋樹中查詢節點的父節點Java
- 008,二叉樹的下一個節點二叉樹
- 快速求完全二叉樹的節點個數二叉樹
- 通過sql 計算兩經緯度之間的距離SQL
- 刷題系列 - 在給出二叉樹中兩個點,求出其最小共同父節點二叉樹
- TCP 中的兩個細節點TCP
- 求矩陣中向量兩兩間的歐氏距離(python實現)矩陣Python
- 經緯度計算兩地之間的距離(原理與方法)
- 671. 二叉樹中第二小的節點二叉樹
- JAVA計算兩經緯度間的距離Java
- IBM量子計算機亮相 距離標準量子計算機相距甚遠IBM計算機
- 百度地圖計算兩座標點之間距離計算地圖
- 為什麼二叉樹中葉子節點個數等於度為2的節點個數+1二叉樹
- 加大段落中2個字元之間的間距字元
- 常見問題01:計算地球上兩個點的距離
- 【谷歌面試題】求陣列中兩個元素的最小距離谷歌面試題陣列
- 程式碼隨想錄——二叉樹-11.完全二叉樹的節點個數二叉樹
- 2058. 找出臨界點之間的最小和最大距離
- 原生JS獲取DOM 節點到瀏覽器頂部的距離或者左側的距離JS瀏覽器
- 空間資料庫三維空間兩點距離計算錯誤資料庫
- 實現一個函式,對給定平面任意兩點座標(x 1 ,y 1 )和(x 2 ,y 2 ),求這兩點之間的距離函式
- 刷題系列 - 在二叉樹中查詢給出節點,並返回以該節點為根的樹二叉樹
- 刷題系列 - 在二叉樹中,為每個節點關聯其右相鄰節點二叉樹