您的位置:首页 > Web前端

剑指offer之二叉树的深度

2015-04-13 16:49 204 查看
问题:输入一棵二叉树的根节点,求该树的深度?

思路:如果一棵树只有一个节点,它的深度为1;如果只有左子树,那么该树的深度为左子树的深度加1;同样,如果只有右子树,深度为右子树的深度加1;如果既有左子树,也有右子树,该树的深度为左右树较大值加1。

代码:

递归:

struct BinaryTreeNode {

int m_value;

BinaryTreeNode * m_pLeft;

BinaryTreeNode * m_pRight;

}

//求树的深度

intTreeDepth(BinaryTreeNode* pRoot)

{

if(pRoot == NULL)

return 0;

int nLeft = TreeDepth(pRoot->m_pLeft);

int nRight = TreeDepth(pRoot->m_pRight);

return (nLeft > nRight) ? (nLeft + 1) :(nRight + 1);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: