题目:将两个已排序的链表求交集。
思路:遍历L1把L1中与L2相同的保留下来,不同的删掉。
问题:在调用删除某一指定节点时把前面的遍历过的节点一起删了,哪里出了问题?请教大佬,感谢
思路错误。再检查检查你的83行,不行单步跟踪一下,看看它究竟做了什么、想想你的这个思路可不可能得到你想要的结果(提示:如果L2中有一个数字是L1中没有的,它能否出现在最终结果里?)
此外,这个程序的效率也很成问题。比如删除,每次还要从头查找一次,这就成了O(N)的效率;实际上直接传当前节点进去可以O(1)删除。
事实上,你的整体思路从一开始就有问题。两个排过序的链表……这实质上就是明示你用归并排序。O(N)的效率完成合并,合并过程中随手剔除相同的元素即可。
一定要先想通整个逻辑,确保它一定能达到目的,这才能动手敲代码。你这一开始就没想明白,直接动手写代码,肯定越搞越扑朔迷离。
联系客服