1分钟学会二叉树前,中,后序遍历,错过后悔

        大家好,我是天蓬。

今天跟大家聊一下如何在1分钟内学会二叉树的前、中、后序遍历,废话不多说,开讲!


一、什么是二叉树? 先来看看概念

        二叉树(binary tree)是指树中节点的度不大于2的有序树,它是一种最简单且最重要的树。二叉树的递归定义为:二叉树是一棵空树,或者是一棵由一个根节点和两棵互不相交的,分别称作根的左子树和右子树组成的非空树;左子树和右子树又同样都是二叉树(来源于百度百科)。

        看着官方的解释有点迷糊,其实就是如下图的一种数据结构:

1分钟学会二叉树前,中,后序遍历,错过后悔_第1张图片

 二、前、中、后序遍历(官方)

        无论是在教材中,还是网络上,二叉树的遍历一般都是这样告诉你的。

前序遍历:首先访问根节点,然后访问左子树,最后访问右子树

                  结果:F C A D B E H G M

中序遍历:首先访问左子树,接着访问根结点,最后访问右子树

                  结果:A C B D F H E M G

后序遍历:首先访问左子树,接着访问右子树,最后访问根结点

                  结果:A B D C H M G E F

但是,实际的情况是,有很多同学,搞着搞着就出错了,如果这个二叉树再多几层,就很可能出错,这也可能意味着你的考试可能丢分或者严重一点,你可能错过了一份你中意的offer。


三、"三分"遍历法

        这里我先姑且叫做 "三分" 遍历法,因为我也不知道该叫它什么好,虽然这种方式有点投机取巧的味道,但是,它的确快啊!同时,我也希望大家掌握这种方法的同时,也要懂得原理,这样才是正确的。

还是以上面的图来分析

        1. 把所有节点按如下方式,当作用两条线分成的三部分)来看待,没有子节点的当作三部分共用一个位置即可。

                如根节点F:

1分钟学会二叉树前,中,后序遍历,错过后悔_第2张图片

         2. 根据第1步,就得到了如下图:

        1分钟学会二叉树前,中,后序遍历,错过后悔_第3张图片

         3. 连线(像走路一样,画轨迹)  

             来看看轨迹图:

             前序:(从根节点开始,从左到右)将所有节点的 "前" 依次连接

                          F -> C -> A -> D -> B -> E -> H -> G -> M

               

1分钟学会二叉树前,中,后序遍历,错过后悔_第4张图片

            中序:(从最左边的节点开始,从左到右)将所有节点的 "中" 依次连接

                          A -> C -> B -> D -> F -> H -> E -> M -> G

1分钟学会二叉树前,中,后序遍历,错过后悔_第5张图片

            后序:(从最左边的节点开始,从左到右)将所有节点的 "后" 依次连接

                         A -> B -> D -> C -> H -> M -> G -> E -> F

        1分钟学会二叉树前,中,后序遍历,错过后悔_第6张图片

        画轨迹的整个过程,就像蚂蚁沿着路回家一样;多练习几次,就完全可以做到即看即答,到这里就结束了,如果你还觉得不错的话,点个赞鼓励一下吧!

        我们江湖见!

你可能感兴趣的:(数据结构,算法,数据结构)