LeetCode543. 二叉树的直径(python)解
题目:给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过根结点。
注:二叉树直径
代码:
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution(object):
def diameterOfBinaryTree(self, root):
"""
:type root: TreeNode
:rtype: int
"""
self.ans=0
def dfs(root):
if not root:
return 0
left=dfs(root.left)
right=dfs(root.right)
self.ans=max(self.ans,left+right)
return max(left,right)+1
dfs(root)
return self.ans