day14 | 二叉树
今天四道题 翻转,对称,max深度和 min 深度
基本都一次过。 求最小深度的时候有点卡顿,记录一下。
主要问题就是是叶子结点的,我们的递归方程如下
return min(getDepth(root.left),getDepth(root.right))+1
如果左边是一个None 节点的话,我们是返回inf还是返回0比较合适呢?
如果是 inf 的话,那么最刚开始,空节点进入的时候 leetcode 要求我们返回的是 0
如果返回是 0 的话,那么如果该节点不是叶子结点,那么他的最小深度就变成是 1了
我这里单纯的把最刚开始进入的和后面具体计算的这两种情况分开来了。完整代码如下
def minDepth(self, root: Optional[TreeNode]) -> int: if not root: return 0 def getDepth(root): if not root: return inf if not root.left and not root.right: return 1 return min(getDepth(root.left),getDepth(root.right))+1 return getDepth(root)