您的位置:首页 > 其它

[leetcode]-543. Diameter of Binary Tree

2017-03-27 22:23 645 查看


思路:

diameter保存最大的直径,每次更新该值

depthOfBinary利用分治算法计算树的深度:分解为子问题,分别求得左右子树的深度lDepth,rDepth,两者相加+2就是该节点下的最大直径。

代码:

class Solution {
public:
int diameter = 0;
int diameterOfBinaryTree(TreeNode* root) {
depthOfBinaryTree(root);
return diameter;
}
int depthOfBinaryTree(TreeNode* root){
if(root == NULL){
return -1;
}
int lDepth = depthOfBinaryTree(root->left);
int rDepth = depthOfBinaryTree(root->right);
diameter = max(diameter,lDepth+rDepth+2);
return max(lDepth, rDepth) + 1;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息