543. 二叉树的直径
递归搜索树,求 左子树 最大深度 和 右子树 最大深度(包括本节点,因为在递归的时候需要 + 1向上递归) 并保存,路径与深度的关系为 路径 = 左 + 右 - 2
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def diameterOfBinaryTree(self, root: TreeNode) -> int:
ans = 0
def helper(root):
if root == None:
return 0
else:
l = helper(root.left) + 1
r = helper(root.right) + 1
nonlocal ans
ans = max(ans, l + r - 2)
return max(l, r)
helper(root)
return ans