一面:
1、有两个有序链表(数值有序)。一个链表是递增的,一个链表是递减的。现在将两个链表合并成一个链表,并保证最后的链表是递增的。
2、有一颗二叉树,结点的结构体如下:
strcut node
{
int value;
node * left;//左孩子
node * right;//右孩子
node * other;//同一层右侧的结点。
}node *;
如何用新的结构体表示的结点表示出二叉树的结构。即同一层的结点,如何从左到右链接起来。
如果允许用多余的空间,怎么做?不能用多余的空间又怎么做?(这道也是优酷的面试题)
二面:
1、检索二叉树(有序二叉树,左孩子的值都比根的值小,右孩子的值都比根的值大),找一个x,判断二叉树上是否有该结点。如果有,则删除。(写代码)
三面:
1、(智力题)一个监狱里,有100名犯人,1名监狱长。监狱长有一个房间,房间里有一盏灯。监狱长每天可随机从100名犯人之间抽一个犯人(可重复)去这个房间,犯人可开灯、关灯,也可以什么都不做。犯人之间不能通信。问题:在监狱长选第一个人进房间之前,100个人需要商量一个对策,保证:在监狱长选犯人的过程中,其中一个人进房间后看了一下,跟监狱长说,这100个犯人都至少进来过一次了。(监狱长选犯人的次数是无限的)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/173992.html原文链接:https://javaforall.net
