111、二叉树的最小深度
基本思想:
广度优先搜索
具体实现:
1、根节点入列
2、循环条件是 直到清空队列
3、节点出列以后判断左右子树
如果左右子树都为空,返回现在的深度
如果左孩子存在,加入队列,原深度加1
如果右孩子存在,加入队列,原深度加1
depth+1此时并不会改变depth
代码:
class Solution: def minDepth(self, root: TreeNode) -> int: if not root: return 0 que = collections.deque([(root, 1)]) while que: node, depth = que.popleft() if not node.left and not node.right: return depth if node.left: que.append((node.left, depth + 1)) if node.right: que.append((node.right, depth + 1)) return 0