【剑指offer】输入一颗二叉树的根节点,求二叉树的深度,C++实现


原创博文,转载请注明出处!

# 题目

image

image

# 举例

       下图二叉树的深度为4,最长路径为1-2-5-7.

image

 

# 思路(递归)

      如果一个树只有一个节点,它的深度为1;

      如果根节点只有左子树而没有右子树,那么树的深度应该是其左子树的深度+1;

      如果根节点只有右子树而没有左子树,那么树的深度应该是其右子树的深度+1;

      如果根节点既有左子树又有右子树,那么树的深度应该是左右字数深度的较大值+1.

# 代码

  1 class Solution {
  2 public:
  3     int TreeDepth(TreeNode* pRoot)
  4     {
  5         if(pRoot == nullptr)
  6             return 0;
  7         int left = TreeDepth(pRoot->left);
  8         int right = TreeDepth(pRoot->right);
  9 
 10         return (left>right) ? (left+1) : (right+1);
 11 
 12     }
 13 };


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM