Cousins in Binary Tree

IF
AlgoAxiomStaff Engineers
JSTS
Easy20 mins

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.

Examples

Example 1:

1234

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:

12345

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:

1234

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.

Constraints

  • The number of nodes in the tree is in the range [2, 100]
  • 1 <= Node.val <= 100
  • Each node has a unique value
  • x != y
  • x and y exist in the tree
Source: Tree Breadth-First Search pattern — AlgoAxiom
JavaScript
Test Case 1
root = [1, 2, 3]
Test Case 2
root = [1, 2, 3, 4, 5]
Idle