The distance is the number of edges between nodes.
Code
struct node{Node*Left Node*Right int nmaxleft; int nmaxright; int vhvalue;}; int ans;//Answerint Findmaxval (Node*Root) {if(Root== NULL)return;if(Root -Left== NULL)returnRoot -Nmaxleft= 0;if(Root -Right== NULL)returnRoot -Nmaxright= 0;if(Root -Left!= NULL) Findmaxval (Root -left);if(Root -Right!= NULL) Findmaxval (Root -right);if(Root -Left!= NULL) {int tmp= 0;if(Root -Left -Nmaxleft>Root -Left -Nmaxright) tmp=Root -Left -Nmaxleft;ElseTmp=Root -Left -Nmaxright; Root -Nmaxleft=Tmp+ 1; }if(Root -Right!= NULL) {int tmp= 0;if(Root -Right -Nmaxleft>Root -Right -Nmaxright) tmp=Root -Right -Nmaxleft;ElseTmp=Root -Right -Nmaxright; Root -Nmaxright=Tmp+ 1; } ans= Max(ANS, root -Nmaxleft+Root -Nmaxright);}
Copyright NOTICE: Reprint please indicate the source.
Finding the maximum distance of a binary tree node