【数据结构】链表习题之反转链表和删除链表中等于给定值 val 的所有节点

news/2024/4/27 21:05:44

👑个人主页:啊Q闻       

🎇收录专栏:《数据结构》           

 🎉道阻且长,行则将至

前言 

今天的博客是关于链表的题目,力扣上的题目之反转链表删除链表中等于给定值 val 的所有节点

一.反转链表 

题目为:

思路:

我们创建三个指针,n1,n2,n3,然后分别赋值为n1=NULL,n2=head,n3=head->next,当n2为空时,循环结束

代码如下:

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*/typedef struct ListNode ListNode;
struct ListNode* reverseList(struct ListNode* head) {if(head==NULL)//判断链表是否为空,为空直接返回,且head为空时,head->next无意义{return head;}ListNode*n1,*n2,*n3;n1=NULL,n2=head,n3=head->next;while(n2){n2->next=n1;n1=n2;n2=n3;if(n3)//注意n3为空时,n3->next无意义{n3=n3->next;}}return n1;
}

二. 删除链表中等于给定值 val 的所有节点

题目为:

思路:

定义新链表,遍历原链表找到不为val的值,尾插在新链表中 

代码如下:

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*/typedef struct ListNode ListNode;
struct ListNode* removeElements(struct ListNode* head, int val) {ListNode*newhead,*newtail;//定义新链表头尾指针newhead=newtail=NULL;ListNode*pcur=head;while(pcur){if((pcur->val)!=val)//不是val,就尾插到新链表中{if(newhead==NULL)//链表为空{newhead=newtail=pcur;}else//链表不为空,进行尾插{newtail->next=pcur;newtail=newtail->next;}}pcur=pcur->next;}if(newtail)//newtail要及时置空{newtail->next=NULL;}return newhead;
}

注意:

感谢大家阅读,如果对你有帮助的话,三连支持一下吧😊 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.cpky.cn/p/10992.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

已知屏幕分辨率和屏幕尺寸,JavaScript如何计算屏幕PPI像素密度

返回主目录:OpenLayers扩展组件系列汇总目录:常用OpenLayers地图扩展组件ol-ext、ol-cesium、ol-layerswitcher、ol-geocoder和ol-wind等扩展库 前言 本章作为补充章,用于讲解使用ol-ext组件的前置知识。 要想知道 PPI 是什么,我们需要先理解“像素”这个概念,那么什么是…

Auction Stores 建立拍卖 WooCommerce 商店的详细教程- US Domain Center主机

第一步:了解拍卖 WooCommerce 商店 拍卖 WooCommerce 商店是一个在线平台,允许用户以拍卖的方式出售和购买商品。通过使用 WooCommerce 的插件,您可以轻松地在您的网站上实现拍卖功能,提供给用户一个类似 eBay 的体验。 第二步&…

大数据面试题 —— Zookeeper

目录 ZooKeeper 的定义ZooKeeper 的特点ZooKeeper 的应用场景你觉得Zookeeper比较重要的功能ZooKeeper 的选举机制 ***zookeeper主节点故障,如何重新选举?ZooKeeper 的监听原理 ***zookeeper集群的节点数为什么建议奇数台 ***ZooKeeper 的部署方式有哪几…

RIPGeo代码理解(六)main.py(运行模型进行训练和测试)

​代码链接:RIPGeo代码实现 ├── preprocess.py # 预处理数据集并为模型运行执行IP聚类 ├── main.py # 运行模型进行训练和测试 ├── test.py #加载检查点,然后测试 一、导入各种模块和数据库 import torch.nnfrom lib.utils import * import argparse i…

JDK21下载+安装+环境配置教程(Windows系统)

前言:甲骨文公司与2023.9发布JDK21,JDK21将是一个长期支持(LTS)版本,JDK20目前可以从官网下载使用。 1,搜索Oracle官网找到JDK21 Java Downloads | Oracle 2,切换Windows系统,然后点击下载&am…

【C++】仿函数优先级队列反向迭代器

目录 一、优先级队列 1、priority_queue 的介绍 2、priority_queue 的使用 3、 priority_queue 的模拟实现 1)priority_queue()/priority_queue(first, last) 2)push(x) 3)pop() 4&#…