1class Solution:2def validateBinaryTreeNodes(3self, n: int, leftChild: List[int], rightChild: List[int]4) -> bool:56left_set = set(leftChild)7right_set = set(rightChild)89que = []1011for i in range(n):12if i not in left_set and i not in right_set:13que.append(i)1415if len(que) > 1 or len(que) == 0:16return False1718graph = defaultdict(list)1920for i in range(n):21graph[i] = []2223if leftChild[i] != -1:24graph[i].append(leftChild[i])2526if rightChild[i] != -1:27graph[i].append(rightChild[i])2829visited = set()30visited.add(que[0])3132while len(que) > 0:33item = que.pop(0)3435children = graph[item]3637for child in children:38if child not in visited:39que.append(child)40visited.add(child)41else:42return False4344for i in range(n):45if i not in visited:46return False4748return True