剑指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);
}
思路:如果一棵树只有一个节点,它的深度为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);
}
相关文章推荐
- 【剑指offer】面试题55(1):二叉树的深度
- 剑指offer-39 二叉树的深度
- 剑指offer---二叉树深度
- LintCode-剑指Offer-(97)二叉树的最大深度
- 剑指Offer--二叉树的深度
- 剑指offer第三十五题【二叉树的深度】c++实现
- 二叉树的深度[剑指offer]之python实现
- 【剑指offer】面试题39:深度二叉树
- 剑指offer 39题 【知识迁移能力】二叉树的深度
- [剑指offer]二叉树深度vs判断平衡二叉树
- 剑指offer之二叉树的深度(Python)
- 剑指Offer—38—二叉树的深度
- 剑指offer 面试题39 求二叉树深度|判断是否为平衡二叉树
- 剑指offer36--二叉树的深度
- 剑指offer-二叉树的深度
- 剑指offer----二叉树的深度----java实现
- 剑指offer39题(二叉树的深度)
- 【剑指offer-Java版】39二叉树的深度
- 【剑指offer】二叉树深度
- [剑指offer]二叉树的深度