题目:输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。
这道题用递归的方法非常的简单,一颗树的最大深度,其实可以看作是它的左子树和右子树中,最大的那个子树的深度+1,就是这棵树最大的深度。边界条件是当遍历到空节点的时候,深度为0,此时返回0就好了。
c++代码如下:
1 class Solution { 2 public: 3 int TreeDepth(TreeNode* pRoot) 4 { 5 if(!pRoot) return 0; 6 return max(TreeDepth(pRoot->left),TreeDepth(pRoot->right)) + 1; 7 } 8 };