题目:原题链接(中等)

标签:树、广度优先搜索

解法 时间复杂度 空间复杂度 执行用时
Ans 1 (Python) O ( N ) O(N) O(N) O ( N ) O(N) O(N) 188ms (95.65%)
Ans 2 (Python)
Ans 3 (Python)

解法一:

class Solution:
    def correctBinaryTree(self, root: TreeNode) -> TreeNode:
        visited = {root}
        queue = collections.deque([(root, None)])
        while queue:
            node, father = queue.popleft()
            if node.right in visited:
                if father.left == node:
                    father.left = None
                else:
                    father.right = None
                return root
            if node.right:
                queue.append((node.right, node))
            if node.left:
                queue.append((node.left, node))
            visited.add(node)
        return root