Back to Leetcode Go

104. Maximum Depth of Binary Tree

website/content.en/ChapterFour/0100~0199/0104.Maximum-Depth-of-Binary-Tree.md

1.7.971.0 KB
Original Source

104. Maximum Depth of Binary Tree

Problem

Given a binary tree, find its maximum depth.

The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.

Note: A leaf is a node with no children.

Example:

Given binary tree [3,9,20,null,null,15,7],


    3
   / \
  9  20
    /  \
   15   7

return its depth = 3.

Problem Summary

Output the maximum height of a tree.

Solution Approach

This problem can be solved with recursive traversal. Traverse the height of the root node's left child and the height of the root node's right child, take the maximum of the two, and then add one to get the total height.

Code

go

package leetcode

/**
 * 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
	}
	return max(maxDepth(root.Left), maxDepth(root.Right)) + 1
}