c_cpp 二叉树的直径
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 二叉树的直径相关的知识,希望对你有一定的参考价值。
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
struct TreeNode {
int data;
TreeNode *left, *right;
TreeNode(int d) : data(d), left(NULL), right(NULL) {}
};
int height(TreeNode *root) {
if(!root) return 0;
int hl = height(root->left), hr = height(root->right);
return hl > hr ? hl + 1 : hr + 1;
}
int diameter(TreeNode *root) {
if(!root) return 0;
int hl = height(root->left), hr = height(root->right);
return max(hl + hr + 1, max(diameter(root->left), diameter(root->right)));
}
int main()
{
TreeNode *r = new TreeNode(5);
r->left = new TreeNode(4); r->right = new TreeNode(6);
r->left->left = new TreeNode(3);
r->right->right = new TreeNode(7);
cout << diameter(r);
return 0;
}
以上是关于c_cpp 二叉树的直径的主要内容,如果未能解决你的问题,请参考以下文章
543. 二叉树的直径
543-二叉树的直径
刷题20:二叉树的直径
LeetCode 0543. 二叉树的直径
LeetCode 0543. 二叉树的直径
二叉树的直径-leetocde543