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

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

# 题目

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

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

# 举例

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

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

 

# 思路(递归)

      如果一个树只有一个节点,它的深度为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 };

转载于:https://www.cnblogs.com/wanglei5205/p/8919113.html

你可能感兴趣的:(【剑指offer】输入一颗二叉树的根节点,求二叉树的深度,C++实现)