【剑指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 };
posted @ 2018-04-23 14:51  wanglei5205  阅读(2826)  评论(0编辑  收藏  举报
levels of contents