链表求交集请教数据结构与算法是哪里出了问

题目:将两个已排序的链表求交集。

思路:遍历L1把L1中与L2相同的保留下来,不同的删掉。

问题:在调用删除某一指定节点时把前面的遍历过的节点一起删了,哪里出了问题?请教大佬,感谢

思路错误。再检查检查你的83行,不行单步跟踪一下,看看它究竟做了什么、想想你的这个思路可不可能得到你想要的结果(提示:如果L2中有一个数字是L1中没有的,它能否出现在最终结果里?)

此外,这个程序的效率也很成问题。比如删除,每次还要从头查找一次,这就成了O(N)的效率;实际上直接传当前节点进去可以O(1)删除。

事实上,你的整体思路从一开始就有问题。两个排过序的链表……这实质上就是明示你用归并排序。O(N)的效率完成合并,合并过程中随手剔除相同的元素即可。

一定要先想通整个逻辑,确保它一定能达到目的,这才能动手敲代码。你这一开始就没想明白,直接动手写代码,肯定越搞越扑朔迷离。

预览时标签不可点收录于话题#个上一篇下一篇


转载请注明:http://www.92nongye.com/ksfc/ksfc/204625838.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了