LeetCode 993
使用BFS找到两个node,比较层数和parents
def isCousins(self, root: TreeNode, x: int, y: int) -> bool:
if root == None: return False
found = 0
q = [(root, None, 0)]
while q and found !=2:
current = q.pop(0)
if current[0].val == x:
xp = current[1]
xl = current[2]
found +=1
if current[0].val == y:
yp = current[1]
yl = current[2]
found +=1
if current[0].left != None:
q.append((current[0].left, current[0], current[2]+1))
if current[0].right != None:
q.append((current[0].right, current[0], current[2]+1))
if found != 2:
return False
return xp !=yp and xl == yl