题目来源“数据结构与算法面试题80道”。
问题分析:涉及的知识点是二叉树的遍历,遍历的方法主要有:
- 先序遍历
- 中序遍历
- 后序遍历
- 层次遍历
在本题中,使用先序遍历的方法。
方法:
void m_length(BSTreeNode *root, int *length, int *max_length){
if (NULL == root ||
(NULL == root->m_pLeft && NULL == root->m_pRight)){
if ((*length) > (*max_length)) (*max_length) = (*length);
return;
}
(*length) ++;
m_length(root->m_pLeft, length, max_length);
(*length) --;
(*length) ++;
m_length(root->m_pRight, length, max_length);
(*length) --;
}