LeetCode0543.二叉树的直径[简单][Python][递归]问题LeetCode给定一棵二叉树,你需要计算树的直径的长度。二叉树的直径是树中任意两个节点之间最长路径的长度。此路径可能会也可能不会通过根。示例:给定一棵二叉树1/\23/\45返回3,即路径[4,2,1,3]或[5,2,1,3]的长度。注意:两个节点之间的路径长度由它们之间的边数表示。问题讲座给定一棵二叉树,你需要计算它的直径长度。二叉树的直径是任意两个节点之间路径长度的最大值。该路径可能通过根节点。示例:给定一棵二叉树1/\23/\45返回3,其长度为路径[4,2,1,3]或[5,2,1,3]。注意:两个节点之间的路径长度用它们之间的边数表示。递归的思想不是求左子树的高度+右子树的高度。相反,找到任意两点之间路径的最大值。Python3code#Definitionforabinarytreenode.#classTreeNode:#def__init__(self,x):#self.val=x#self.left=None#self.right=Noneclass解决方案:defdiameterOfBinaryTree(self,root:TreeNode)->int:self.max=0self.depth(root)returnself.maxdefdepth(self,root):如果不是root:return0l=self.depth(root.left)r=self.depth(root.right)#更新最大值self.max=max(self.max,l+r)#返回高度returnmax(l,r)+1代码地址GitHub链接
