1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 type TreeNode struct { Val int Left *TreeNode Right *TreeNode } func maxDepth(root *TreeNode) int { if root == nil { return 0 } var max func(a, b int) int max = func(a, b int) int { if a > b { return a } return b } return max(maxDepth(root.Left), maxDepth(root.Right))