递归法解决二叉树的最长路径问题
问题描述:
解决方案:
这里运用简单的递归便可以解决
template<typename E>
int LongestPathInBinaryTree(BinNode<E>* root, int& max_dist){
if(!root)
return 0;
int left=LongestPathInBinaryTree(root->left(),max_dist);//左遍历递归
int right=LongestPathInBinaryTree(root->right(),max_dist);//右遍历递归
max_dist=max(max_dist,left+right);
return 1+max(left,right);//返回值
}