Given the root of a binary tree with unique values and two different node values x and y, return true if the nodes corresponding to the values x and y are cousins, or false otherwise.
Two nodes of a binary tree are cousins if they have the same depth but different parents.
Note that in a binary tree, the root node is at depth 0, and children of each depth k node are at depth k + 1.
Example 1:
Input: root = [1, 2, 3, 4], x = 4, y = 3
Output: false
Explanation: Node 4 is at depth 2 with parent 2, and node 3 is at depth 1. They are not at the same depth, so they cannot be cousins.
Example 2:
Input: root = [1, 2, 3, null, 4, null, 5], x = 5, y = 4
Output: true
Explanation: Node 5 has parent 3 and node 4 has parent 2. Both are at depth 2 with different parents, so they are cousins.
Example 3:
Input: root = [1, 2, 3, null, 4], x = 2, y = 3
Output: false
Explanation: Node 2 and node 3 are at the same depth but they are siblings (same parent: 1), not cousins. Actually, they share the same parent so they are siblings, not cousins.
[2, 100]1 <= Node.val <= 100x != yx and y exist in the tree