Минимальная глубина двоичного дерева Python Не работает - PullRequest
1 голос
/ 04 августа 2020

Я пытаюсь решить проблему, требующую нахождения минимальной глубины двоичного дерева. Кажется, я не могу найти ошибку. Любой совет будет большим подспорьем.

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def minDepth(self, root: TreeNode) -> int:
        if not root:
            return 0
        
        queue = []
        queue = collections.deque(queue)
        queue.append(root)
        depth = 0
        
        while len(queue) != 0:
            numberOfNodes = len(queue)
            
            while numberOfNodes > 0:
                currentNode = queue.popleft()
                
                if not currentNode and not currentNode:
                    depth += 1
                    return depth
                
                if currentNode.left:
                    queue.append(currentNode.left)
                
                if currentNode.right:
                    queue.append(currentNode.right)
                
                numberOfNodes -= 1
            
            depth += 1
        return depth    

1 Ответ

1 голос
/ 04 августа 2020

Кажется, я нашел небольшую ошибку. Вместо:

if not currentNode and not currentNode:
    depth += 1
    return depth

Возможно, должно быть так:

if currentnode.left is None and currentnode.right is None:     
    return depth
...