二叉树最大深度
访问量:436

一、简介

给定一个二叉树,找出其最大深度。

示例:

给定二叉树 [3,9,20,null,null,15,7]

    3
   / \
  9  20
    /  \
   15   7

返回它的最大深度 3 

二、解法

思路:利用递归法,“自顶向下” 的解决方案,代码实现如下:

/**
 * Definition for a binary tree node.
 * type TreeNode struct {
 *     Val int
 *     Left *TreeNode
 *     Right *TreeNode
 * }
 */
func maxDepth(root *TreeNode) int {
    if root == nil {
        return 0
    }
    
    if root.Left == nil && root.Right == nil{
        return 1
    }
    
    if root.Left == nil {
        return 1 + maxDepth(root.Right)
    }
    
    if root.Right == nil {
          return 1 + maxDepth(root.Left)
    }
    
    left := 1 + maxDepth(root.Left)
    right := 1 + maxDepth(root.Right)
    
    if left > right {
        return left
    } else {
        return right
    }
}