二叉樹中節點的最大距離

問題描述:

節點間的距離定義: 節點之間的路徑長度。

問題分析:

二叉樹中最大的路徑長度有三種情況:

1. 最大路徑長度出現在左子樹中

2. 最大路徑長度出現在右子樹中

3. 最大路徑長度由根節點、右子樹中的最深葉子節點、左子樹中的最深葉子節點構成

示例代碼:

下列代碼大致演示了求解的過程。

int maxDistanc(TreeNode *root, int & height)
{
if (!root || (!root->left && !root->right))
{height = 0; return 0;}
int hl, hr, maxleft, maxright;
maxleft = maxDistance(root->left, hl);
maxright = maxDistance(root->right, hr);
return max(max(maxleft, maxright), hl + hr + 1 + 1);
}


發佈了149 篇原創文章 · 獲贊 8 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章