面试题39:二叉树的深度

来源:互联网 发布:51单片机cy 编辑:程序博客网 时间:2024/05/21 11:25

题目一:输入一颗二叉树的根节点,求该树的深度。


算法思路:前序遍历二叉树,求出左子树的高度,在求出右子树的高度,取较大的那个值返回并且返回的时候加1,即可求出二叉树的高度。


struct BinaryTreeNode{int m_nValue;BinaryTreeNode * m_pLeft;BinaryTreeNode * m_pRight;};int GetTreeDepth(BinaryTreeNode * root){if(root==NULL)return 0;//获取左子树长度int left=GetTreeDepth(root->m_pLeft);//获取右子树长度int right=GetTreeDepth(root->m_pRight);//取较大的值返回并且加1return (left>right)?left+1:right+1;}


题目二:输入一颗二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意结点的左右子树的深度相差不超过1,那么它就是一颗平衡二叉树。

0 0