LeetCode-in-All

104. Maximum Depth of Binary Tree

Easy

Given the root of a binary tree, return its maximum depth.

A binary tree’s maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.

Example 1:

Input: root = [3,9,20,null,null,15,7]

Output: 3

Example 2:

Input: root = [1,null,2]

Output: 2

Constraints:

Solution

type TreeNode struct {
	Val   int
	Left  *TreeNode
	Right *TreeNode
}

/**
 * Definition for a binary tree node.
 * type TreeNode struct {
 *     Val int
 *     Left *TreeNode
 *     Right *TreeNode
 * }
 */
func maxDepth(root *TreeNode) int {
	return traverseAndCount(root, 0)
}

func traverseAndCount(root *TreeNode, counter int) int {
	if root == nil {
		return counter
	}

	counter++
	cl := traverseAndCount(root.Left, counter)
	cr := traverseAndCount(root.Right, counter)

	if cl > cr {
		return cl
	} else {
		return cr
	}
}