为什么树遍历的时间复杂度是 O(n)

问题描述

为什么树的中序、前序和后序遍历的时间复杂度为 O(n)? AVL树有什么用? 由于 avl 树是平衡的,与 bst 相比,时间复杂度会发生变化吗?

解决方法

一棵树的中序、前序和后序遍历的时间复杂度是 O(?) 因为这些遍历最多访问一个节点两次:当遇到它时 边,以及沿着同一条边向上。沿任一方向沿边缘行进的成本不依赖于 ?...它是 O(1),因此总时间复杂度是 O(?)。

二叉树的平衡与否并不重要,因为边的数量保持不变:它总是比节点的数量少一。

二叉树是否是二叉搜索树当然无关紧要:这只对节点中的施加条件,而它们没有对于这些类型的遍历来说根本不重要。