首页 > 其他分享 >代码随想录day03 链表删除 链表类的实现 反转链表

代码随想录day03 链表删除 链表类的实现 反转链表

时间:2023-12-29 23:01:10浏览次数:20  
标签:删除 day03 反转 随想录 链表 指针

首先是链表的删除操作 热身题

这里使用了一个新的头指针 这样在删除头指针的时候就不需要进行额外的判断

然后是链表类的实现

需要一点背诵加上深刻理解 有时候理解了但是写起来还是会有些指针边界的小问题
应该多写写多记一下就会好了
还有就是手写链表要常复习吧
学习新语言应该也要对这些常用的数据结构进行手写练习



和代码随想录收录的题目相比只少了一个打印链表
遍历一遍 遍历的过程中cout就行

然后是反转链表

又是一道自己写就会漏洞百出的题目 需要经常复盘

看了视频思路就可以自己很快写出双指针的解法

只需要注意一下需要一个tmp指针先保存好当前指针的子指针 然后改变方向就可以了

以下是递归写法

主要就是想清楚终止条件是here为nullptr时终止 然后就是递归可以省去移动here和pre的操作

标签:删除,day03,反转,随想录,链表,指针
From: https://www.cnblogs.com/mingtiao/p/17935828.html

相关文章

  • 代码随想录算法训练营第十七天 | 110.平衡二叉树,257. 二叉树的所有路径,404.左叶子之和
    一、110.平衡二叉树题目链接:LeetCode110.平衡二叉树学习:思路:后序遍历。实际上是由叶结点到根结点,若有一颗子树不是平衡二叉树,则直接返回给根结点二、257.二叉树的所有路径题目链接:LeetCode257.二叉树的所有路径学习:思路:递归+回溯。因为是线=先遍历根结点,然后遍历左孩......
  • 【数据结构】C语言实现双链表的基本操作
    双链表导言大家好,很高兴又和大家见面啦!!!经过前面几个篇章的内容分享,相信大家对顺序表和单链表的基本操作都已经熟练掌握了。今天咱们将继续分享线性表的链式存储的第二种形式——双链表。在今天的内容中,咱们将介绍双链表的创建以及一些基本操作,接下来跟我一起来看看吧!一、单链表与双......
  • day02 代码随想录算法训练营 977. 有序数组的平方
    题目:977. 有序数组的平方我的感悟:这道题,仔细观察,平方后两头的大。用双指针,取两头,放到新的数组里。新数组要求排序所以,新的数组从后往前放理解难点:无他,多练习。代码难点:无总结概括:双指针代码示例:classSolution:defsortedSquares(self,nums:List[in......
  • day01 代码随想录算法训练营 27. 移除元素
    题目:27.移除元素感悟:用快慢指针。本题是要原地删除。而删除这个行为在真实的计算机的数组里,是覆盖。所以,就用两个指针,(人)一个跑的快,一个跑的慢。他们身上带了个对讲机。跑的快的那个人负责检测后面的数字符合要求不,比如,要不等于3的,遇到一个2,告诉跑的慢的说2符合要求。遇......
  • python 删除链表的倒数第 N 个结点 多种解法
    解法一:双指针法这种解法使用两个指针,一个快指针和一个慢指针,它们之间的距离为N。首先,让快指针先移动N步。然后,同时移动快指针和慢指针,直到快指针到达链表末尾。此时,慢指针指向的节点就是要删除的节点的前一个节点。最后,将慢指针的下一个节点指向下下个节点,完成删除操作。defre......
  • 代码随想录算法训练营第十六天 |104.二叉树的最大深度,559.n叉树的最大深度,111.二叉树
    一、104.二叉树的最大深度题目链接:LeetCode104.二叉树的最大深度学习:思路:分别求左子树和右子树的高度,返回给根结点,加1之后是根结点的深度,这是后序遍历的思路二、559.n叉树的最大深度题目链接:LeetCode559.N叉树的最大深度学习前:思路:后序遍历。分别所有孩子结点的深......
  • 代码随想录day 02 双指针 滑动窗口 螺旋矩阵
    有序数组的平方题目如下:如果是可以使用O(nlogn)或以上复杂度的算法,本题可以简单的先平方一遍,然后使用排序算法就可以了但是要求使用O(n)复杂度的算法,那么我首先想到的是昨天的快慢指针类似的想法:我想先平方一次数组,然后从中间开始排序,如下但是运行之后发现从中间开始进行相邻元......
  • 【数据结构】C语言实现单链表的基本操作
    单链表基本操作的实现导言大家好,很高兴又和大家见面啦!!!在上一篇中,我们详细介绍了单链表的两种创建方式——头插法与尾插法,相信大家现在对这两种方式都已经掌握了。今天咱们将继续介绍单链表的基本操作——查找、插入与删除。在开始今天的内容之前,我们先通过尾插法创建一个单链表,如......
  • 114. 二叉树展开为链表
    给你二叉树的根结点 root ,请你将它展开为一个单链表:展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。展开后的单链表应该与二叉树 先序遍历 顺序相同。 示例1:输入:root=[1,2,5,3,4,null,6]输出:[1,null,2,null,3,......
  • day01 代码随想录算法训练营 704. 二分查找
    题目:leetcode704.二分查找 感悟:困扰我多年的二分查找对于边界的判断,我终于理解了。难点:难点1:定边界rightright=len(nums)还是len(nums)-1 难点2:while循环whileleft<right还是left<=right 难点3:mid取值mid=right-1还是mid=right  结论:1.自己确定......