一道腾讯链表面试题
2017-12-21 10:33
288 查看
题目:快速找到未知长度单链表的中间节点.
普通方法:首先遍历一遍单链表以确定单链表的长度L.然后再次从头节点出发循环L/2次找到
单链表的中间节点.
算法复杂度:O(L+L/2)=O(3L/2)
高级方法:利用快慢指针原理,设置两个指针*searh *mid都指向单链表的头节点.
其中*search的移动速度是*mid的2倍.当*search指向末尾节点的时候,mid正好指向就在中间了.
算法复杂度:O(L/2)
HashSet没有get方法 只能通过Iterator来迭代遍历
因为他的底层是哈希表,哈希表顺序是不确定的.
普通方法:首先遍历一遍单链表以确定单链表的长度L.然后再次从头节点出发循环L/2次找到
单链表的中间节点.
算法复杂度:O(L+L/2)=O(3L/2)
高级方法:利用快慢指针原理,设置两个指针*searh *mid都指向单链表的头节点.
其中*search的移动速度是*mid的2倍.当*search指向末尾节点的时候,mid正好指向就在中间了.
算法复杂度:O(L/2)
HashSet没有get方法 只能通过Iterator来迭代遍历
因为他的底层是哈希表,哈希表顺序是不确定的.
相关文章推荐
- 一道腾讯关于字符串匹配的面试题
- 一道腾讯面试题:英语单词拼写检查
- [js高手之路]学生问的一道javascript面试题[来自腾讯]
- 腾讯的一道面试题
- 线性表11|单链表小结:腾讯面试题 – 数据结构和算法16
- 线性表11|单链表小结:腾讯面试题 - 数据结构和算法16
- 转:链表相交有环 经典面试题(三)附答案 算法+数据结构+代码 微软Microsoft、谷歌Google、百度、腾讯
- 一道腾讯面试题的思考:到底谁会赢?
- 腾讯的一道面试题—不用除法求数字乘积
- 一道腾讯面试题的思考:到底谁会赢?
- 腾讯一道找中位数的面试题
- 线性表11|单链表小结:腾讯面试题 - 数据结构和算法16
- 腾讯的一道javascript面试题
- 网上看到的一道腾讯面试题
- 腾讯的一道Script面试题
- 一道腾讯面试题
- 学生问的一道javascript面试题[来自腾讯]
- 线性表——单链表小结(腾讯面试题)(4)
- 腾讯的一道面试题
- 一道腾讯面试题