题目
给出一个二叉树,计算出树的直径。二叉树的直径指的是两个节点的路径的最大长度。这个路径可能会经过根节点。
Python题解
class Solution(object):
def diameterOfBinaryTree(self, root):
"""
:type root: TreeNode
:rtype: int
"""
self.ans = 1
def dfs(root):
if root is None:
return 0
left = dfs(root.left)
right = dfs(root.right)
self.ans = max(self.ans, left + right + 1)
return max(left, right) + 1
dfs(root)
return self.ans - 1