1、递归特别注意self.max_len 而不是 max_len需要加self# Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class Solution: def diameterOfBinaryTree(self, root: Optional[TreeNode]) - int: # 二叉树的最大直径 # 其实就是左边的最大深度 右边的最大深度但是返回到上一个节点只能返回当前max_len 1 self.max_len 0 def dfs(Node): if not Node: return 0 left_depth dfs(Node.left) right_depth dfs(Node.right) if (left_depthright_depth)self.max_len: self.max_len (left_depthright_depth) return max(left_depth,right_depth)1 dfs(root) return self.max_len