如何获得两个链表的不常见元素?

时间:2010-06-18 22:39:59

标签: comparison linked-list

给出两个整数链接列表。我被要求返回一个包含非共同元素的链表。我知道怎么用O(n ^ 2)来做,在O(n)中做任何事情?

3 个答案:

答案 0 :(得分:3)

使用哈希表。

遍历第一个链接列表,将您遇到的值输入哈希表。

遍历第二个链表,将未找到的任何元素添加到哈希表的非公共元素列表中。

此解决方案应为O(n),假设哈希表中没有冲突。

答案 1 :(得分:1)

创建一个新的空列表。有一个哈希表,并用两个列表的元素填充它。复杂性然后按顺序迭代每个列表,并在迭代时,将这些元素放在新列表中,这些元素不在哈希表中。复杂性整体复杂性= n

答案 2 :(得分:0)

如果他们没有被排除,那么我认为不可能比O(n ^ 2)更好。然而,你可以通过对它们进行排序来做得更好......你可以在合理的快速时间内排序,然后得到类似O(nlogn)的东西(我不确定它会是什么,但我认为它可以是那么快你使用正确的算法。)