我在一次采访中被问到这个问题。
列表看起来像这样。
a 1 ->b n ->a 2 ->b n-1 ... ->a n ->b 1 ->NULL
这样,a 1 < a 2 < ... < a n
和
b 1 < b 2 < ... < b n
面试官对我施加了以下限制:
- 您必须对列表进行适当的排序,即不允许将一组元素的备用元素删除到单独的列表中。
- 您必须以某种方式利用列表中的模式,而不是简单的排序算法。
在面试期间我无法想出解决方案,现在也是。:-(
编辑:用 C 编写代码来对这个单链表进行排序。
Edit2:有人告诉我,我可以从冒泡排序中借鉴一些想法并利用该模式。但它不应该是一个“幼稚”的短片。
我讨厌面试官施加人为限制,但嘿,工作就是工作:-)