![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
链表
文章平均质量分 50
mmm`
希望可以早点形成规范的代码思路
展开
-
142.环形链表(学习笔记附代码)
思路:对于这道题可以从数学角度去理解,就是当成简单的追及相遇问题,a和b一个跑得快一个跑得慢的匀速运动,在环行路每次前进固定步数,中间不停顿,什么条件下一定能相遇?转化后的问题可以看到有三个关键点,匀速,固定,不停。总结:对于这种环形链表的问题,可以固定一个解题思路,1.快慢指针,2.快指针比慢指针每次多走一个next一直走就能找到相遇节点,相遇条件就是slow==fast,3.相差距离:这个可以列写公式,这个在代码随想录里有详细的动画解释,应该可以看的更清楚,如果后面忘记步骤可以返回看。原创 2024-01-11 11:07:39 · 313 阅读 · 1 评论 -
206.反转链表(双指针+递归)(附代码)
思路比较容易懂但是有一些细节,比如两个指针把谁赋值给谁。我是在链表里把循环前进的过程直接看成.next,就相当于做了一次++操作。这样就方便继续检查不出现空指针的问题。这个思路的话就是用两个指针或者说ListNode类型的数据来指向要反转方向的两个节点,直到前面的指针指向了null就停止。递归法思路其实和双指针是基本一样的,不过是整理成了一个新的私有的函数,这个函数可以取代上面类似于++的前进过程。原创 2024-01-10 18:06:06 · 418 阅读 · 0 评论 -
707.设计链表(附代码)
你可以选择使用单链表或者双链表,设计并实现自己的链表。的节点的值(查找);是指向下一个节点的指针/引用。如果是双向链表,则还需要属性。以指示链表中的上一个节点。假设链表中的所有节点下标从。题目解读:1.设计链表,单双都可;原创 2024-01-10 16:31:00 · 374 阅读 · 0 评论 -
关于链表(代码随想录学习笔记)
解题思路:对于单向链表元素的删除其实理解起来并不难,无非就是理解透上面1中提到的对链表的定义,既然单向我们要删掉一个元素就是让他的前一个元素的指针指向被删除的元素指向的对象,但就是写起来稍微麻烦一点,对于目前刚上手链表会需要一些时间理解。//设计新的头节点,-1就是链表构造函数中的输入的val,head是原始头节点(这块让我想了好久刚开始真的迷不过来head的类型)//如果当前节点就是要找的节点,虚拟头节点指向cur节点的下一个节点,也就是找出要删除节点里存放的next,把它放进虚拟头节点里。原创 2024-01-09 21:34:50 · 386 阅读 · 0 评论