距离是指在二叉树中从一个节点到达另一个节点所需经过的边的数量。本文将介绍如何使用递归和非递归的方法来计算二叉树中任意两个节点之间的距离。
递归实现
对于递归实现,我们可以使用以下步骤来计算两个节点之间的距离:
- 从根节点开始,找到与给定节点值相等的节点。
- 如果找到了其中一个节点,返回到该节点的父节点,并继续在子树中查找另一个节点。
- 如果找到了另一个节点,返回到该节点的父节点,并继续在子树中查找第一个节点。
- 如果两个节点都找到了,计算它们的公共祖先节点,并返回两个节点到公共祖先节点的距离之和。
下面是使用递归实现的示例代码:
class TreeNode:
def __init__(self, val