Leetcode543.Diameter of Binary Tree二叉樹的直徑
阿新 • • 發佈:2018-11-06
給定一棵二叉樹,你需要計算它的直徑長度。一棵二叉樹的直徑長度是任意兩個結點路徑長度中的最大值。這條路徑可能穿過根結點。
示例 :
給定二叉樹
1
/ \
2 3
/ \
4 5
返回 3, 它的長度是路徑 [4,2,1,3] 或者 [5,2,1,3]。
注意:兩結點之間的路徑長度是以它們之間邊的數目表示。
class Solution { public: int res = 0; int diameterOfBinaryTree(TreeNode* root) { if(root == NULL) return 0; res = max(res, GetDepth(root ->left) + GetDepth(root ->right) + 1); diameterOfBinaryTree(root ->left); diameterOfBinaryTree(root ->right); return res - 1; } int GetDepth(TreeNode* root) { if(root == NULL) return 0; return 1 + max(GetDepth(root ->left), GetDepth(root ->right)); } };