993. Cousins in Binary Tree (Easy) - TengnanYao/daily_leetcode GitHub Wiki

# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution(object):
    def isCousins(self, root, x, y):
        """
        :type root: TreeNode
        :type x: int
        :type y: int
        :rtype: bool
        """
        queue = [root]
        m = n = -1
        while queue:
            level = []
            for i, node in enumerate(queue):
                if node:
                    if node.val == x:
                        m = i
                    elif node.val == y:
                        n = i
                    if m >= 0 and n >= 0:
                        return not (min(m, n) % 2 == 0 and abs(m - n) == 1)
                    level.append(node.left)
                    level.append(node.right)
            if m >= 0 or n >= 0:
                return False
            queue = level