码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2014-12-09 17:50:33      阅读:118      评论:0      收藏:0      [点我收藏+]

标签:io   ar   os   sp   on   ef   amp   as   new   

#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;;
} 

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

标签:io   ar   os   sp   on   ef   amp   as   new   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!