阿里面试必问之,手写 Java 二叉树

阿里面试必问之,手写 Java 二叉树

 

阿里面试

现在很多公司在招聘开发岗位的时候,都会事先在招聘信息中注明面试者应当具备的知识技能,而且在面试的过程中,有部分对于技能掌握程度有严格要求的公司还会要求面试者手写代码,这个环节很考验面试者的基础功底和实力!

这不,前些天一个朋友去阿里面试的时候,在二面过程中就被要求使用 Java 实现二叉树,王二 Dog 由于没有准备这方面的知识,没有答上来,然后就让回家等通知了。

所以有利用给王二 Dog 讲解二叉树的机会,我整体梳理了下二叉树常见的面试点,发出来供大家一起交流学习。希望对你的面试有所帮助。

二叉树

二叉树是递归数据结构,其中每个节点最多可以有 2 个子节点。

常见类型的二叉树是二叉搜索树,其中每个节点的值大于或等于左子节点值,并且小于或等于右子节点中的节点值。

这是这种二叉树的直观表示:

阿里面试必问之,手写 Java 二叉树

 

对于实现,我们将使用 Node 类来存储 int 值并保存对每个子节点的引用:

阿里面试必问之,手写 Java 二叉树

 

然后,让我们添加树的根节点,通常称为 

阿里面试必问之,手写 Java 二叉树

 

让我们一起来实现下

现在,让我们看看可以在二叉树上执行的最常见操作有哪些?

插入元素

我们要介绍的第一个操作是插入新节点。

首先,我们必须找到我们想要添加新节点的位置,以便对树进行排序。我们将从根节点开始遵循这些规则:

  • 如果新节点的值低于当前节点的值,我们转到左子节点
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值