金三银四过去之后,回顾好多同学的面试经历,总结出了这份大厂面试真题的合集(含答案),里面包含了Java中级到Java架构师的方方面面,其中大厂也包含了阿里巴巴,京东,百度,拼多多,顺丰,携程,唯品会,OPPO等等大厂。
下面先给大家看一个总的目录大纲。
由于文章篇幅有限,楼主下面为大家展示部分的面试题内容,同时后边也会为大家分享面试的软技能(面试突击指导的视频+文字的教程)
大厂面试真题(含答案展示)
阿里巴巴
问题: 二叉搜索树和平衡二叉树有什么关系,强平衡二叉树(AVL 树)和弱平衡二叉树(红黑树)有什么区别
二叉搜索树:也称二叉查找树,或二叉排序树。定义也比较简单,要么是一颗空树,要么就是具有如下性质的二叉树:
(1)若任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值;
(2)若任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值;
(3)任意节点的左、右子树也分别为二叉查找树;
(4)没有键值相等的节点。
平衡二叉树:在二叉搜索树的基础上多了两个重要的特点
(1)左右两子树的高度差的绝对值不能超过 1;
(2)左右两子树也是一颗平衡二叉树。
红黑树:红黑树是在普通二叉树上,对每个节点添加一个颜色属性形成的,需要同时满足以下五条性质:
(1)节点是红色或者是黑色;
(2)根节点是黑色;
(3)每个叶节点(NIL 或空节点)是黑色;
(4)每个红色节点的两个子节点都是黑色的(也就是说不存在两个连续的红色节点);
(5)从任一节点到其每个叶节点的所有路径都包含相同数目的黑色节点。
区别:AVL 树需要保持平衡,但它的旋转太耗时,而红黑树就是一个没有 AVL 树那样平衡,因此插入、删除的效率会高于 AVL 树