网站开发人员 把网站注销,深圳高端营销网站,wordpress主题手机主题,青田县住房和城乡规划建设局网站代码思路#xff1a; 先递归调用左儿子和右儿子求得它们为根的子树的深度 L和 R #xff0c;则该节点为根的子树的深度即为max(L,R)1。该节点的 dnode值为LR1
递归搜索每个节点并设一个全局变量 ans记录 dnode的最大值#xff0c;最后返回 ans-1 即为树的直径。
# Definit… 代码思路 先递归调用左儿子和右儿子求得它们为根的子树的深度 L和 R 则该节点为根的子树的深度即为max(L,R)1。该节点的 dnode值为LR1
递归搜索每个节点并设一个全局变量 ans记录 dnode的最大值最后返回 ans-1 即为树的直径。
# 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:self.ans 1def depth(node):# 访问到空节点了返回0if not node: return 0 # 左儿子为根的子树的深度L depth(node.left) # 右儿子为根的子树的深度R depth(node.right)# 计算d_node即LR1 并更新ansself.ans max(self.ans,LR1)# 返回该节点为根的子树的深度return max(L,R)1 depth(root)return self.ans-1