二叉树中节点的最大距离

来源:互联网 发布:配电网优化运行 编辑:程序博客网 时间:2024/05/01 06:07

问题描述:

节点间的距离定义: 节点之间的路径长度。

问题分析:

二叉树中最大的路径长度有三种情况:

1. 最大路径长度出现在左子树中

2. 最大路径长度出现在右子树中

3. 最大路径长度由根节点、右子树中的最深叶子节点、左子树中的最深叶子节点构成

示例代码:

下列代码大致演示了求解的过程。

int maxDistanc(TreeNode *root, int & height){if (!root || (!root->left && !root->right)){height = 0; return 0;}int hl, hr, maxleft, maxright;maxleft = maxDistance(root->left, hl);maxright = maxDistance(root->right, hr);return max(max(maxleft, maxright), hl + hr + 1 + 1);}


0 0