二进制树Python不工作的最小深度



我正试图解决一个需要找到二进制树的最小深度的问题。我似乎找不到错误。任何建议都会有很大帮助。

# 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    

我想我发现了这个小错误。代替:

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

也许,应该是这样的:

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

最新更新