【发布时间】:2012-05-09 10:42:00
【问题描述】:
我在一次采访中被问到这个问题。
列表如下所示。
a1->bn->a2->bn-1 ... ->an->b1->NULL
这样, a12 n
和
b12 n
面试官对我施加了以下限制:
- 您必须对列表进行适当的排序,即您不允许 将一组元素中的替代元素移除到一个单独的 列表。
- 您必须以某种方式利用列表中的模式而不是简单的排序算法。
我在面试期间无法想出解决方案,现在也是。 :-(
编辑:用 C 编写代码来对这个单链表进行排序。
Edit2:有人告诉我,我可以从冒泡排序中借鉴一些想法并利用该模式。但它不应该是一个“幼稚”的短片。
我讨厌面试官施加人为限制,但嘿,工作就是工作:-)
【问题讨论】:
-
那么,想要的结果是什么?是否对整个列表进行排序,而不区分
a和b元素? -
编辑问题以解决 cmets
-
@Saurabh 你还没有解决我的问题。期望的输出是什么?
-
我有。问题已经得到解答:您必须对列表进行适当的排序,
-
@Saurabh 实际上,没有。您所说的只是列表应该“排序”。您尚未指定这是否意味着
a和b节点之间应该没有区别。
标签: algorithm sorting data-structures linked-list