Leetcode题库203.移除链表元素(尾指针填充 / 虚头指针定义 c实现)
文章目录
- 思路
- 方法1
- 方法2
- 代码
- 方法1
思路
方法1
下面提供了方法1的代码,可供参考
ret指针做返回链表的头指针,last做返回链表的尾指针
第一步:找头
使用指针p遍历链表,找到第一个val值不为给定val值的结构体,将其赋给ret指针,并使得last指针指向当前返回指针尾部,也就是ret指针指向的地方(因为当前返回链表长度为1)
第二步:填尾
使用指针p遍历链表,找到val值不为给定val值的结构体将其赋给last指针的next,然后调整last使其再次指向返回链表尾部
方法2
方法2较为简单,未给出代码实现
第一步:
定义一个虚的头部指针ret,使得ret->指向head,一个遍历指针p = ret
第二步:
若p->next->val = val,说明p->next需要被剔除,则令p = p->next->next,如此循环直至遍历整个链表
最后去掉我们先前定义的虚的头部指针,返回ret->next即可
代码
方法1
struct ListNode* removeElements(struct ListNode* head, int val){struct ListNode *ret = NULL, *last = NULL, *p = head;while(p!=NULL){if(ret==NULL){if(p->val!=val){ret = p;p = p->next;last = ret;last->next = NULL;}else{p = p->next;}}else{if(p->val!=val){last->next = p;p = p->next;last = last->next;last->next = NULL;}else{p = p->next;}}}return ret;
}
Leetcode题库203.移除链表元素(尾指针填充 / 虚头指针定义 c实现)相关推荐
- json移除一个元素_leetcode:203.移除链表元素,听说用虚拟头节点会方便很多?
链表操作中,可以使用原链表来直接进行删除操作,也可以设置一个虚拟头结点在进行删除操作,接下来看一看哪种方式更方便. ❞ 第203题:移除链表元素 题意:删除链表中等于给定值 val 的所有节点. 思路 ...
- LeetCode刷题日记 203. 移除链表元素
删除链表中等于给定值 val 的所有节点. /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode ...
- LeetCode Algorithm 203. 移除链表元素
203. 移除链表元素 Ideas 这题其实很简单,从头开始遍历,只要遇到node->val==val的通通删除就OK了. Code C++ class Solution {public:Lis ...
- Java实现 LeetCode 203 移除链表元素
203. 移除链表元素 删除链表中等于给定值 val 的所有节点. 示例: 输入: 1->2->6->3->4->5->6, val = 6 输出: 1->2 ...
- 203. 移除链表元素 力扣 c语言
203. 移除链表元素 难度简单843 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 . 方法1 迭代 也可 ...
- LeetCode-链表-203. 移除链表元素
描述 203. 移除链表元素 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 . 示例 1: 输入:head ...
- Suzy找到实习了吗Day 3 | 链表开始啦 203移除链表元素 707设计链表 206 反转链表
定义链表的结构 class ListNode:def __init__(self, val, next=None): #构造函数self.val = valself.next = next 尾部nod ...
- Leetcode 203. 移除链表元素 (每日一题 20210914)
给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 .示例 1:输入:head = [1,2,6,3,4,5,6] ...
- leetcode 203. 移除链表元素
题目 思路 经典的小弟大哥解法: 小弟踩着大哥的脚印 大哥先走一步 题解 // Definition for singly-linked list. class ListNode {int val;L ...
最新文章
- 什么是泛型,为什么要使用泛型? 泛型类和泛型方法的实现以及限定通配符的使用。什么是泛型擦除,为什么有泛型擦除,泛型擦除到底是怎么实现的
- 番茄花园win11 32位官方纯净版镜像v2021.07
- 作者:杨琪,数据堂(北京)科技股份有限公司企业发展部副总监。
- 查找数组连成环形的和最大的连续子数组
- python中os.path.basename的使用
- 云计算解码:技术架构和产业运营
- java 集成ibm mq 教程_IBM MQ JMS 与spring的整合
- web 摄像头拍照并上传
- MySQL到mongodb中间件_Bifrost: Bifrost ---- 面向生产环境的 MySQL 同步到Redis,MongoDB等服务的异构中间件...
- su vary注册机_vray for sketchup2018下载
- 手机怎么用外嵌字幕_iphone 12发布 ! “预购、定金、尾款、换手机”用英语怎么说?...
- Mac 如何免费支持NTFS 格式移动硬盘读写
- 怎么在qq空间引流?QQ空间生日栏怎么引流?
- 计算机科学与专业大学排名,计算机科学与技术专业大学排名
- VR和AR的区别是什么?-粤嵌教育
- js的数据类型,深拷贝和浅拷贝的原理,loda实现一个深拷贝
- Matlab 函数circShift、psf2otf 的 python(Numpy)实现
- 函数function的使用方法
- 山科计算机科学与技术学院,山东科技大学-计算机科学与工程学院
- esp32-s2 wifi
热门文章
- Android-----Resources
- [网络安全自学篇] 十六.Python攻防之弱口令、自定义字典生成及网站防护
- 【数据结构与算法】之深入解析“有效的数独”的求解思路与算法示例
- OpenGL之简单渲染一个三角形
- LeetCode Algorithm 530. 二叉搜索树的最小绝对差
- 【Linux】一步一步学Linux——Bash常用快捷键(11)
- python素材库_python的JSON库
- select选择后生成html,Javascript - 从select中添加选择列表
- 进程wait()与waitpid()
- 每天一道LeetCode-----给定二维数组代表海域和岛屿,计算有多少个孤岛