给定一个二叉树,找出其最大深度。
二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
说明: 叶子节点是指没有子节点的节点。
示例:
给定二叉树 [3,9,20,null,null,15,7]
,返回它的最大深度 3
解法一:递归法
代码如下:
/**
* Definition for a binary tree node.
* public class TreeNode {
* public var val: Int
* public var left: TreeNode?
* public var right: TreeNode?
* public init(_ val: Int) {
* self.val = val
* self.left = nil
* self.right = nil
* }
* }
*/
class Solution{
func maxDepth(_root:TreeNode?)->Int{
if root == nil{
return 0
}
//递归时后面的+1用来保证每执行递归一次,都保证深度+1
return max(maxDepth(root?.left),maxDepth(root?.right))+1
}
}