百科问答小站 logo
百科问答小站 font logo



链表求交集,从链表头删去一长串而非一个节点?(已解决)? 第1页

  

user avatar   s.invalid 网友的相关建议: 
      

思路错误。再检查检查你的83行,不行单步跟踪一下,看看它究竟做了什么、想想你的这个思路可不可能得到你想要的结果。


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


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

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


最后,再提醒一下:你自己实现了程序、且指出了具体问题,这很好(我也正是看在这个份上才读了你的源码);但发代码求助时,最好直接发文本格式的源码拷贝,不要发截图


这是因为,用人脑模拟电脑思考很累;甚至可以说,绝大多数程序员都还没有这个能力——起码要有能力“人脑部分模拟CPU”、同时对链表相关算法了如指掌的水准,才可能通过看源码直接分析程序执行细节、找到问题所在。


因此,如果你直接发文本,那么热心人拷到自己的编辑器里一跑,很容易就能找到问题所在;但如果你发截图,那么很多人就不得不自己把你的代码一点点照图敲进去、然后才能调试;即使那些有能力直接从源码看出问题的,人家开个IDE不比费老大劲儿当人肉编译器轻省?


与人方便,自己方便。替那些可能帮你的人考虑一下,你得到帮助的几率就会更高。




  

相关话题

  C++ 的智能指针不就基本解决了野指针问题了吗?为什么还要吹捧rust的内存安全? 
  有哪些见过的时间复杂度为无限大的算法? 
  为什么 360 面试官说 Trie 树没用? 
  计算机专业必读哪些经典书籍? 
  是否存在仅由1和2组成的长度为2^n的序列,可以做到在这个序列中取出所有含1和2的长度为n的序列? 
  C语言中for语句的赋初值用int i=1和i=1有什么区别? 
  倒序输出字符串c++为啥不行? 
  为何void类型指针不能解引用,却可以参与强制类型转换? 
  c++中 为什么数组不能被vector完全替代? 
  C++ 有类似C语言container_of这种,通过指针访问对象的方法么? 

前一个讨论
如果推荐一部电影,你会推荐哪部?
下一个讨论
笔记本支架有必要买的吗?





© 2025-02-20 - tinynew.org. All Rights Reserved.
© 2025-02-20 - tinynew.org. 保留所有权利