543、二叉樹的直徑
阿新 • • 發佈:2021-02-14
技術標籤:LeetCode解題
543、二叉樹的直徑
題目:
給定一棵二叉樹,你需要計算它的直徑長度。一棵二叉樹的直徑長度是任意兩個結點路徑長度中的最大值。這條路徑可能穿過也可能不穿過根結點。
示例 :
給定二叉樹
1
/ \
2 3
/ \
4 5
返回 3, 它的長度是路徑 [4,2,1,3] 或者 [5,2,1,3]。
**注意:**兩結點之間的路徑長度是以它們之間邊的數目表示。
解答:
int result;
public int DiameterOfBinaryTree (TreeNode root)
{
DFS(root);
return result;
}
private int DFS(TreeNode node)
{
//老方法,遍歷然後根據返回的數字進行比較大小
if (node == null) return 0;
int left = DFS(node.left);
int right = DFS(node.right);
result = Math.Max(result, left + right);
return Math.Max(left, right) + 1;
}