数据结构常见编程题小结.docxVIP

  • 7
  • 0
  • 约2.54万字
  • 约 33页
  • 2017-05-18 发布于重庆
  • 举报
数据结构常见编程题小结

单链表因为单链表要考虑的可能性比较少,所以单链表的题目比较简单,而且比较常考。特别要注意的是链表的数据的插入和删除,因为(没有头节点)的单链表在第一个元素之前插入和删除和最后一个元素的插入删除需要特别考虑。做题时,最好把单链表的示意图画出来,这样就很方便写代码了。常用技巧:快慢指针,拆分链表数据结构定义如下:?C++ Code?12345struct?ListNode?{?????int?val;//值?????ListNode?*next;//下一个元素?????ListNode(int?x)?:?val(x),?next(NULL)?{}//new初始化?};下面是一些常考的题目:Linked List Cycle-判断一个链表是否有环最好的方法是时间复杂度 O(n),空间复杂度 O(1) 的。设置两个指针,一个快一个慢,快的指针每次走两步,慢的指针每次走一步,如果快指针和慢指针相遇,则说明有环。(如何证明,上网找找)代码实现如下:?C++ Code?123456789101112131415161718//LeetCode,?Linked?List?Cycle//?时间复杂度?O(n),空间复杂度?O(1)class?Solution{public:????bool?hasCycle(ListNode?*head)????{????????//?设置两个指针,一个快一个慢??

文档评论(0)

1亿VIP精品文档

相关文档