问题一:怎么判断两个单链表是否有交叉
这个问题只问了有没有交叉而没有问给出交叉点是谁。
所以只需要两个链表走到最后的位置判断是否相等就可以知道有没有交叉了。
问题二:有一百万个数,要从里面获取100个最大的数?
使用冒泡,最外层循环100次就可以找到100个最大的数。
选择排序和这个也很像。
最好的方法是用堆来实现,建一个有100个节点的小根堆,比根节点大就和根节点替换然后重构小根堆,如果比根节点小,就不要这个数。
问题三:怎么判断两个单链表是否有交叉,并得到交叉点?
一种方法是,遍历两个单链表,获取他们的长度,然后较长的先走相差的那几步,然后两个同时开始走,判断是否相等,若相等则是交叉点,停止。