树形dp思想,其实很多递归的题得弄明白每层需要什么样的信息。
回溯就是每层可能不满足条件,不要怕自己coding,其实就这样
# 函数名请忽略,没有找到相应题
class Solution:
def largestValues(self, root: TreeNode) -> List[int]:
# 终止条件子树为空
if not root:
return float('inf'), float('-inf')
lmin, lmax = self.largestValues(root.left)
rmin, rmax = self.largestValues(root.right)
return min(lmin, rmin, root.val), max(lmax, rmax, root.val)