(1)有1到n的链表,改成1,n-1,2,n-2,3,n-3……的链表
解答:把后半部分链表反转(怎么找后半部分,设两指针,一个走一步,一个走两步即可),然后设两指针,1指向n-1,n-2指向2,2指向n-2……即可。
(2)双向队列的的源码实现……
解答:双向链表,内存问题,链表结点池,池取出全部后,要重新new,所以要有维护池的东东……
(3)n个数里面取出前20小的数,有多少种方法,复杂度越低越好
解答:1.排序;2.二叉排序树;3.优先队列或者堆。面试的时候说完这三个,然后面试官说时间到了……
(4)平衡树和红黑树最核心的区别。
解答:面试的时候不懂。回来查了查,说是:如果搜索多的话用平衡树,插入修改多用红黑树。
(5)C++多态。
解答:最容易的题目,但是面试的时候居然忘了……把多太和重载搞混了,然后回答不好……