Python中查找二叉树中的最大和最小元素

2025年1月5日 | 阅读 3 分钟

在此问题中,给定一个二叉树。我们的任务是找出给定二叉树中的最小值和最大值节点。

让我们看一个例子来理解这个问题

输入

输出

(1, 7)

树的最小节点值为 1,最大节点值为 7。

方法 - 1

在二叉搜索树中,最大节点是树中最右边的节点。我们可以通过展开当前节点的右子树来到达该节点。我们将沿着右指针一直走到树的最右边节点。但是,在二叉树中,我们必须比较每个节点才能找到树的最大值和最小值。为了解决这个问题,我们将遍历树的每个节点,并返回三个节点的最大值:第一个是节点值,第二个是左子树节点,第三个是右子树节点。

以下是实现此想法的 Python 代码。

代码

输出

The maximum element of the tree 10

时间复杂度:我们每个节点都访问了一次;因此,此程序的最佳时间复杂度为 O(N)。

辅助空间:此程序的空间复杂度为 O(N),用于存储递归栈。

为了找到二叉树中的最小元素,我们必须找出这三个节点中的最小值。以下是查找最小值的 Python 代码。

代码

输出

The minimum element of the tree is 0