给定一个二叉树,找出最大深度。最大深度指的是从根结点到叶子结点所经过的最多的结点数。
思路:标准的递归问题。后序遍历该二叉树,用指针指向正在遍历的结点,如果指针为空,说明当前结点的深度为0;如果指针非空,则获取左子树的深度,再获取右子数的深度,二者中较大的那个深度加上1即为当前子树的深度。
代码如下:
1 class Solution { 2 public: 3 int maxDepth(TreeNode* root) { 4 if(root == NULL) 5 return 0; 6 else{ 7 int LD = maxDepth(root->left); 8 int RD = maxDepth(root->right); 9 return (LD>RD?LD:RD)+1; 10 } 11 } 12 };