返回

二叉树的反向之旅——LeetCode 中 Medium 难度的构树之旅

前端

前序遍历:从根源出发,次第展开

前序遍历,顾名思义,是先访问根节点,再访问左子树,最后访问右子树。它就好比一棵大树的生长历程,从种子萌芽,到枝繁叶茂,层层递进,生生不息。

              1
             / \
            2   3
           / \ / \
          4  5 6  7

以这棵二叉树为例,前序遍历的顺序是:1、2、4、5、3、6、7。

中序遍历:由中及外,层层递进

中序遍历,则是先访问左子树,再访问根节点,最后访问右子树。它就好比一棵大树的枝叶舒展,从最内层的嫩芽到最外层的繁花,层层递进,错落有致。

              1
             / \
            2   3
           / \ / \
          4  5 6  7

以这棵二叉树为例,中序遍历的顺序是:4、2、5、1、6、3、7。

后序遍历:由外及内,层层收敛

后序遍历,顾名思义,是先访问左子树,再访问右子树,最后访问根节点。它就好比一棵大树的落叶归根,从最外层的枯叶到最内层的枝干,层层收敛,归于沉寂。

              1
             / \
            2   3
           / \ / \
          4  5 6  7

以这棵二叉树为例,后序遍历的顺序是:4、5、2、6、7、3、1。

根据遍历序列构造二叉树:逆流而上,再现生机

LeetCode Medium 难度下的经典题型之一便是根据遍历序列构造二叉树。这就好比拿着树叶和树枝,要还原出整棵大树的生长历程。听起来是不是有些不可思议?但只要我们掌握了方法,便能迎难而上,逆流而上,再现二叉树的生机。

以先序遍历和中序遍历为例,我们可以通过以下步骤来构造二叉树:

  1. 在先序遍历序列中,第一个元素一定是根节点。
  2. 在中序遍历序列中,找到根节点,将其左右两侧的元素分别作为左子树和右子树。
  3. 对左子树和右子树重复步骤 1 和 2,直到所有节点都构造完成。
先序遍历:1、2、4、5367
中序遍历:4、2、5、1637

根据这两个遍历序列,我们可以构造出如下图所示的二叉树:

              1
             / \
            2   3
           / \ / \
          4  5 6  7

结语:二叉树的魅力,无穷无尽

二叉树,作为数据结构中的重要一员,有着广泛的应用场景,从文件系统到数据库索引,从编译器到图形渲染,无处不在。LeetCode Medium 难度下的二叉树题型,不仅考察了我们的算法能力,也考验了我们的思维能力。通过这些题目的历练,我们对二叉树的理解将更加深刻,对算法的掌握也更加娴熟。

二叉树的魅力,无穷无尽。让我们继续探索,继续攀登,在二叉树的世界里,书写属于自己的精彩篇章。