# 二叉树的遍历
今天下午看了二叉树的三种遍历方式,虽然能写出代码,但是理解可能不太到位,感觉很容易忘,所以想到一个形象的方法,把每个节点当作公交车站,而访问节点则是在这个公交车站捡垃圾,右子树和左子树则表示岔路。然后这个捡垃圾的人钟爱左边这个方向,所以一直以左优先。甲乙丙三个人,都爱捡垃圾,但是思考方式不同,所以捡垃圾的方法有点不同。
先序遍历
先序遍历最简单,秉承的原则是,甲很小心谨慎,每次经过公交车站,怕别人捡了,都把垃圾先捡到手,直到左边的路走完了,再往回走,但是回来的过程中,在公交车站,看到右边还有条公路,就去这条路上按照他的原则捡垃圾, 捡完了之后再回到原来的路上,继续回去。如下图
中序遍历
乙这个人,有点小聪明,他觉得一开始就把垃圾捡了,那岂不是很重,所以他先走到左边的尽头,再捡垃圾,这个过程中把路记下来了,然后在回来的过程中,遇到公交车站,捡完垃圾,如果是岔路,继续往右边走。右边的捡完了,回到主路继续向之前的公交车站走。
后续遍历
丙更聪明了,他往左走的时候,先记下公交车站,然后再记下来右边有条路(但是这条路没走过,不知道有没有垃圾,所以不能直接捡,),这样回来捡垃圾的路上,想起来右边还有条路,于是继续去右边这条路找垃圾,当右边这条路找完了,遇到公交车站,把这个公交车站的垃圾捡了,继续往回走。
原文地址:https://www.cnblogs.com/xmxj0707/p/9671149.html
时间: 2024-10-11 01:20:44