二叉树的直径是指树中任意两个节点之间最长路径的长度。这条路径可能不经过根节点。直径的计算可以通过递归方法实现。
二叉树的直径计算主要有两种方法:
二叉树的直径计算在以下场景中非常有用:
以下是使用递归方法计算二叉树直径的示例代码:
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:
self.diameter = 0
def depth(node):
if not node:
return 0
left_depth = depth(node.left)
right_depth = depth(node.right)
self.diameter = max(self.diameter, left_depth + right_depth)
return max(left_depth, right_depth) + 1
depth(root)
return self.diameter
通过上述方法,可以有效地计算二叉树的直径,并解决在实际应用中可能遇到的问题。
领取专属 10元无门槛券
手把手带您无忧上云