提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
每日刷题,从我做起。
一、二叉树最大深度
class Solution:
def maxdepth(self, root:Optional[Treenode]):
return self.getdepth(root)
def getdepth(self, node)
if not node:
return 0
leftdepth = self.getdepth(self.left)
rightdepth = self.getdepth(self.right)
result = 1 + max(leftdepth, rightdepth)
return result
二、二叉树最小深度
class Solution:
def mindepth(self, root: Optional[Treenode])-> int:
if not root:
return 0
if not root.left and not root.right:
return 1
left_depth = float('inf')
right_depth = float('inf')
if root.left:
left_depth = self.mindepth(root.left)
if root.right:
right_depth = self.mindepth(root.right)
return 1 + min (left_depth, right_depth)
三、完全二叉树的节点数
class Solution:
def countNodes(self, root: Optional[Tree]):
return self.getNodesNum()
def getNodesNum(self, cur):
if not cur:
return 0
left_num = self.getNodesNum(self.left)
right_num = self.getNodesNum(self.right)
result = left_num + right_num + 1
return result
总结
加油