首页 > 其他 > 详细

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

时间:2014-12-09 17:47:40      阅读:270      评论:0      收藏:0      [点我收藏+]
#include <iostream>
using namespace std;
typedef struct tagNode
{
	char data;
	tagNode *lchild;
	tagNode *rchild;
}*PNode;
void createtree(PNode &T)
{
	char c;
	cin >> c;
	if(c == ',')return;
	else
	{
		T = new tagNode;
		T->data = c;
		T->lchild = NULL;
		T->rchild = NULL;
		createtree(T->lchild);
		createtree(T->rchild);	
	}
}


int helper(const PNode T, const PNode root)
{
	if( T == NULL)return 0;
	
	int ldepth = helper(T->lchild,root);
	int rdepth = helper(T->rchild,root);
	if( T == root)	
		return ldepth+rdepth+1;
	else
	 	return max(ldepth,rdepth)+1;
}
int TreeMaxDistance(PNode T)
{
	helper(T,T);
}



int main()
{
	PNode T = NULL;
	createtree(T);
	if( T == NULL)return 0;
	cout << TreeMaxDistance(T) << endl;;
} 

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

原文:http://blog.csdn.net/jiangge123456/article/details/41825671

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!