建设部网站首页格式合同,管理咨询公司属于什么行业,wordpress新用户添加管理员权限,网红营销方式题目
给你一棵二叉树的根节点#xff0c;返回该树的 直径 。
二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。
两节点之间路径的 长度 由它们之间边数表示。
思路
分析二叉树的直径#xff0c;无非是一个节点加上…题目
给你一棵二叉树的根节点返回该树的 直径 。
二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。
两节点之间路径的 长度 由它们之间边数表示。
思路
分析二叉树的直径无非是一个节点加上左右子树的高度。只需遍历所有节点找到结点的左右子树高度之和最大的即可。
代码
/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:
int ans 0;int GetAns(TreeNode* root){if(!root){return 0;}int left GetAns(root-left);int right GetAns(root-right);int temp leftright1;if(tempans){anstemp;}return max(left,right)1;}int diameterOfBinaryTree(TreeNode* root) {GetAns(root);return ans-1; }
};