543. Diameter of Binary Tree
来源:互联网 发布:2016淘宝直通车 编辑:程序博客网 时间:2024/05/17 02:05
Given a binary tree, you need to compute the length of the diameter of the tree. The diameter of a binary tree is the length of the longest path between any two nodes in a tree. This path may or may not pass through the root.
Example:
Given a binary tree
1 / \ 2 3 / \ 4 5
Return 3, which is the length of the path [4,2,1,3] or [5,2,1,3].
Note: The length of path between two nodes is represented by the number of edges between them.
Subscribe to see which companies asked this question.
这一题要我们求一棵树里面的最长路径。采用分治算法会使这题变得很容易解决。
一条最长路径,必定是由一个根的左子树和右子树来构成。只要我们计算出左子树最大深度max_left和右子树最大深度max_right,那么它们的和就是以这个根为中心的最长路径。我们可以定义一个整数max = 0,如果在某个根上,有 max_left + max_right > max,则更新max。每次递归返回该根的最大深度并加1 return max(max_right, max_left) + 1
代码如下:
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
int m = 0; //最大值
int find_max(TreeNode* root){
if (root == NULL) return NULL;
int left = find_max(root -> left);
int right = find_max(root -> right);
if (left + right > m)
m = left + right;
return max(left, right)+1;
}
int diameterOfBinaryTree(TreeNode* root) {
find_max(root);
return m;
}
};
- 543. Diameter of Binary Tree
- 543. Diameter of Binary Tree
- 543. Diameter of Binary Tree
- 543. Diameter of Binary Tree
- 543. Diameter of Binary Tree
- 543. Diameter of Binary Tree
- 543. Diameter of Binary Tree
- 543. Diameter of Binary Tree
- 543. Diameter of Binary Tree
- 543. Diameter of Binary Tree
- 543. Diameter of Binary Tree
- 543. Diameter of Binary Tree
- 543. Diameter of Binary Tree
- 543. Diameter of Binary Tree
- 543. Diameter of Binary Tree
- 543. Diameter of Binary Tree
- 543. Diameter of Binary Tree
- Diameter of Binary Tree
- 树莓派中文输入法
- 关于C/C++中静态本地变量的使用与数据类型修饰符const
- 在android studio里修改jar包
- 数字图像处理——大津法实现图像二值化
- POJ3494
- 543. Diameter of Binary Tree
- Linux格式化U盘
- javaSE_08Java中static、继承、重写
- Ubuntu 14.10 apt-get update 404错误
- 使用浏览器
- Ajax学习和JSON
- nginx源码解析-ngx_show_version_info()
- 【Java面试必备】最近5年133个Java面试问题列表
- 交叉编译工具arm-linux-gcc&arm-elf-gcc下载地址全集