JavaScript二叉树遍历方法详解
二叉树的遍历方法是前端搞算法题绕不开的一块,尤其是你想刷 LeetCode 那类的时候。递归
和非递归
的写法,各有各的妙处,这篇资源把两种方式都讲得挺清楚。递归部分比较基础,思路跟教材差不多,适合刚接触二叉树的时候看看;非递归那块用了堆栈
模拟,思路比较实用,手撸一遍对理解顺序挺有。
中序、先序、后序的顺序搞清楚,是后面做题的关键。比如你刷题遇到“还原一棵树”的题,基本逃不掉要用中序和先序/后序一起做,所以顺序必须得熟练。有时候顺序错了,全白写。
资源里还顺手带了几个扩展链接,像这篇递归遍历和这篇全遍历汇总,都比较通俗,思路也直给,适合晚上刷题前过一遍。
如果你是那种记代码结构比较慢的,可以照着写几遍,关掉代码自己手撸一次。嗯,手感才是王道。
建议你可以把几种遍历方式都写成函数,像preOrder
、inOrder
那样,封装好以后改动也方便,还能直接复用在各种算法题里。响应也快,调试也方便。
如果你刚入门二叉树,或者写题老是忘遍历顺序,蛮推荐你把这个资源收藏起来,刷题时对着看几次,快就能熟了。
下载地址
用户评论