#### 原题说明

In a binary tree, the root node is at depth 0, and children of each depth k node are at depth `k+1`.

Two nodes of a binary tree are cousins if they have the same depth, but have different parents.

We are given the root of a binary tree with unique values, and the values x and y of two different nodes in the tree.

Return true if and only if the nodes corresponding to the values x and y are cousins.

Example 1:

Input: `root = [1,2,3,4], x = 4, y = 3`
Output: `false`

Example 2:

Input: `root = [1,2,3,null,4,null,5], x = 5, y = 4`
Output: `true`

Example 3:

Input: `root = [1,2,3,null,4], x = 2, y = 3`
Output: `false`

Note:

1. The number of nodes in the tree will be between 2 and 100.
2. Each node has a unique integer value from 1 to 100.

#### 解题思路

1) 用`has_x``has_y`代表`x``y`是否出现在本层
2) 判断该节点的子节点是否同时是`x``y`，如果是，说明x和y是兄弟节点，而非cousin节点，直接`return false`
3) 该层扫描结束后，如果has_x和has_y同时为true，说明x和y同时出现在该层，`return true`
4) 该层扫描结束后，如果has_x和has_y仅有一个为true，则x和y必然在不同层，`return false`

#### 归纳总结

------ 关注公众号：猩猩的乐园 ------