您的位置:首页 > 职场人生

一道腾讯链表面试题

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来迭代遍历

因为他的底层是哈希表,哈希表顺序是不确定的.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息