> For the complete documentation index, see [llms.txt](https://jaywin.gitbook.io/leetcode/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://jaywin.gitbook.io/leetcode/solutions/1120-maximum-average-subtree.md).

# 1120. Maximum Average Subtree

<https://leetcode.com/problems/maximum-average-subtree>

## Description

Given the `root` of a binary tree, return *the maximum **average** value of a **subtree** of that tree*. Answers within `10-5` of the actual answer will be accepted.

A **subtree** of a tree is any node of that tree plus all its descendants.

The **average** value of a tree is the sum of its values, divided by the number of nodes.

**Example 1:**

![](https://assets.leetcode.com/uploads/2019/04/09/1308_example_1.png)

```
**Input:** root = [5,6,1]
**Output:** 6.00000
**Explanation:** 
For the node with value = 5 we have an average of (5 + 6 + 1) / 3 = 4.
For the node with value = 6 we have an average of 6 / 1 = 6.
For the node with value = 1 we have an average of 1 / 1 = 1.
So the answer is 6 which is the maximum.
```

**Example 2:**

```
**Input:** root = [0,null,1]
**Output:** 1.00000
```

**Constraints:**

* The number of nodes in the tree is in the range `[1, 104]`.
* `0 <= Node.val <= 105`

## ac

```java
```
