各位观众老爷们,大家好! 今天咱们来聊聊二叉树的那些事儿。 别看这玩意儿长得像个倒过来的树杈子,实际上在计算机世界里可是个大明星。 无论是数据库的索引,还是编译器的语法分析,都少不了它的身影。 今天我就来给大家好好扒一扒,用JavaScript怎么玩转这颗“树杈子”。 二叉树是个啥? 简单来说,二叉树就是每个节点最多有两个孩子(左孩子和右孩子)的树。 就像你家里的族谱,每个人最多有两个孩子(当然,超生游击队的情况咱们这里不考虑)。 代码表示 先用JavaScript把二叉树的节点定义出来: class TreeNode { constructor(val) { this.val = val; this.left = null; this.right = null; } } 这里 val 是节点的值,left 指向左孩子,right 指向右孩子。 遍历大法好! 二叉树遍历,顾名思义,就是把二叉树的所有节点都访问一遍。 就像你过年回家,挨个给亲戚拜年一样。 遍历的顺序不同,拜年的顺序也就不同,效果嘛,自然也不同。 二叉树遍历主要分为两大类: 深度优先遍历 (DFS): 一条路走到黑,不撞南 …