阿里面试
现在很多公司在招聘开发岗位的时候,都会事先在招聘信息中注明面试者应当具备的知识技能,而且在面试的过程中,有部分对于技能掌握程度有严格要求的公司还会要求面试者手写代码,这个环节很考验面试者的基础功底和实力!
这不,前些天一个朋友去阿里面试的时候,在二面过程中就被要求使用 Java 实现二叉树,王二 Dog 由于没有准备这方面的知识,没有答上来,然后就让回家等通知了。
所以有利用给王二 Dog 讲解二叉树的机会,我整体梳理了下二叉树常见的面试点,发出来供大家一起交流学习。希望对你的面试有所帮助。
二叉树
二叉树是递归数据结构,其中每个节点最多可以有 2 个子节点。
常见类型的二叉树是二叉搜索树,其中每个节点的值大于或等于左子节点值,并且小于或等于右子节点中的节点值。
这是这种二叉树的直观表示:
对于实现,我们将使用 Node 类来存储 int 值并保存对每个子节点的引用:
然后,让我们添加树的根节点,通常称为 根:
让我们一起来实现下
现在,让我们看看可以在二叉树上执行的最常见操作有哪些?
插入元素
我们要介绍的第一个操作是插入新节点。
首先,我们必须找到我们想要添加新节点的位置,以便对树进行排序。我们将从根节点开始遵循这些规则:
- 如果新节点的值低于当前节点的值,我们转到左子节点