求二叉树中最远的两个节点的距离

原创 2016年08月28日 16:54:56
<pre name="code" class="cpp">#define _CRT_SECURE_NO_WARNINGS 1

#include<iostream>
#include<assert.h>
#include<vector>
using namespace std;

struct BinaryTreeNode
{
	BinaryTreeNode* _left;
	BinaryTreeNode* _right;

	int data;
};

class BinaryTree
{
public:
	typedef BinaryTreeNode  Node;
	Node* _root;

	//O(N*N)

	size_t Height(Node* root)
	{
		if (root == NULL)
		{
			return 0;
		}
		int LeftDepth = Height(root->_left);
		int RightDepth = Height(root->_right);
		return LeftDepth > RightDepth ? LeftDepth + 1 : RightDepth + 1;
	}
	int maxLen = 0;
	void MaxLen(Node* root)
	{
		if (root == NULL)
			return;
		int lefeH = Height(root->_left);
		int rightH = Height(root->_right);
		if (lefeH + rightH > maxLen)
			maxLen = lefeH + rightH;

		MaxLen(root->_left);
		MaxLen(root->_right);
	}
};


	//O(N)
	int maxLen = 0;
	void MaxLen(Node* root)
	{
		if (root == NULL)
			return 0;
		int leftH = Maxlen(root->_left);
		int rightH = MaxLen(root->_right);

		if (leftH + rightH > maxLen)
			maxLen = leftH + rightH;
		return leftH > rightH ? leftH + 1 : rightH + 1;
	}


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

求二叉树中最远的两个节点的距离

求二叉树中最远的两个节点的距离短短的代码中其实涉及到了三道题目: 利用已知序列递归的建一棵二叉树 递归的求一棵树的深度 求二叉树中距离最远的两个节点的距离:利用递归求树的深度的思想,在其中加入一个最大...
  • bitboss
  • bitboss
  • 2016年11月23日 19:49
  • 1507

~求二叉树中最远的两个节点的距离~

求二叉树中最远的两个节点的距离

二叉树系列问题——求二叉树中最远节点的距离

求二叉树中最远节点的距离,我们首先要对最远距离有清晰的认识,最远距离分为以下三类情况 因此我们在计算距离时总要与前一次的距离作比较,只有当此次左右距离之和大于max值才更改max的值,我...
  • zw_1510
  • zw_1510
  • 2016年08月07日 14:08
  • 126

求二叉树中两个节点最远的距离

一说到二叉树,就有很多题目,今天在编程之美中看到了二叉树中两个节点最远的距离。所以给想借机写一篇博客。 在开始之前,我们先想想,两个最常节点的最远距离是怎么样的? 情况一:最大距离可能一个在左子树...

二叉树中最远的两个结点的距离

解法一:求出每个结点作为根结点时的最远距离 struct BinTreeNode { int _data; BinTreeNode* _left; BinTreeNode* _right; B...

计算二叉树中最远节点距离

二叉树最远节点距离:以根节点为轴左右子树最大深度之和与以各个子树的根节点为轴左右子树的最大深度之和的较大者。思路一:解决这个问题最直接的方式就是遍历。对每个节点求深度,之后再与保存的最大深度maxde...

Java实现:在二叉树中,求距离最远的两个节点的距离

思路:递归的计算出:从每个节点出发,向左走的最大距离和向右走的最大距离,并以每个节点的这两个值为基础进一步计算和判断整个二叉树的最大距离。。。详细步骤见代码注释。 Java代码如下: import...

二叉树中相距最远的两个节点之间的距离

2015年微软校招面试中的一道题目,在一棵二叉树中,找出相距最远的两个节点之间的距离,函数返回距离值(提示:递归)...

【二叉树6】寻找二叉树中任意节点最远的距离

【问题】 距离定义为两个节点中间的节点数目,也就是从一个节点到另一个节点所经过的节点数目(包括自身)。 对与一个节点而言有三种情况可以考虑: 1、左子树的高+右子树的高+1得到经过当前节点的最大pat...

二叉树的两个节点之间最远的距离

题目:求二叉树的两个节点之间最远的距离。package java_exam;/** * 题目:求二叉树的两个节点之间最远的距离。 * @author ShaoCheng * @version 1...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:求二叉树中最远的两个节点的距离
举报原因:
原因补充:

(最多只允许输入30个字)