当前位置: 首页 > news >正文

网站建设哈尔滨网站建设12022近期时事热点素材摘抄

网站建设哈尔滨网站建设1,2022近期时事热点素材摘抄,企业网站开发教程,网站域名要怎样规划主页:HABUO🍁主页:HABUO 🌜有时候世界虽然是假的,但并不缺少真心对待我们的人🌛 1. 移除链表中设定值的元素 题目:给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所…

主页:HABUO🍁主页:HABUO  

🌜有时候世界虽然是假的,但并不缺少真心对待我们的人🌛


1. 移除链表中设定值的元素

题目:给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。

示例:

输入:head = [1,2,6,3,4,5,6], val = 6                     输出:[1,2,3,4,5]

输入:head = [], val = 1                                         输出:[]

输入:head = [7,7,7,7], val = 7                              输出:[]

分析:这是我们所做的第一道有关链表的题,当然了,属于简单题,唯一需要分析的就是,在链表中我们怎么进行迭代?至于删除元素我们在实现链表的时候,就已经实现了无论是头删尾删或者指定位置后删,所以这个题很容易解决,除了一些细节需要注意,具体思想见下图:

所以我们先定义一个cur指针指向我们所要删除的节点,但是我们还要访问上一个节点,这不是双向链表,因此我们还需要创建一个prev指针指向cur的前一个节点,因此如上所示的正常情况的代码如下:

if (cur->val == val)
{prev->next = cur->next;free(cur);cur = prev->next;
}
else
{prev = cur;cur = cur->next;
}

但会产生一个问题就是如果我们一上来就碰到我们所要删除的节点怎么办?因为此时prev指向的为NULL, prev->next就会对NULL解引用,造成错误,如下图所示,所以我们应该对起始位置加以控制。代码实现如下:

struct ListNode* removeElements(struct ListNode* head, int val) {struct ListNode* cur = head;struct ListNode* prev = NULL;while (cur){if (cur->val == val){if (cur == head){head = cur->next;free(cur);cur = head;}else{prev->next = cur->next;free(cur);cur = prev->next;}}else{prev = cur;cur = cur->next;}}return head;
}

2.反转链表

题目:给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 

示例:

输入:head = [1,2,3,4,5]            输出:[5,4,3,2,1]

输入:head = [1,2]                     输出:[2,1]

输入:head = []                          输出:[]

分析:本题我们将通过两个方法去解决, 第一个方法是三指针法,为什么要用三个指针?其实也不难想,我们的主要思路不就是从第一个开始,把每个节点中所存储的下一个节点的地址都修改成该节点的上一个节点地址,但是下一个节点我该怎么找到,是不是就是内存泄漏了,因此我们需要拿个伪指针来指向它,同样的道理,我们这两个伪指针往前走一步了,但是改变的节点我们又该如何找到呢?是不是又没办法了,因此还需要一个伪指针,总体思路见下图:

主体代码实现如下:

cur->next = prev;
prev = cur;
cur = next;

这里需要注意,如果题中给的链表为空链表,或者只有一个节点,next是不是很容易就造成了对NULL进行解引用,所以,我们先不让next指向cur的下一个,刚开始让next和cur一同指向head,处理办法见下:

struct ListNode* prev = NULL;
struct ListNode* cur = head;
struct ListNode* next = head;
while (cur)
{if (cur == head){next = next->next;}cur->next = prev;prev = cur;cur = next;
}

到此还有一点我们没有注意到,到链表走到最后的时候我们循环控制条件是cur,也就意味着cur为NULL循环才停止,但此时的next怎么办?我们是不是还要处理一下,所以总体代码见下:

struct ListNode* reverseList(struct ListNode* head) {struct ListNode* prev = NULL;struct ListNode* cur = head;struct ListNode* next = head;while (cur){if (cur == head){next = next->next;}cur->next = prev;prev = cur;cur = next;if (next != NULL)next = next->next;}return prev;
}

方法二:头插法, 这种方法的思想是借用我们对单链表实现的时候,对头插接口实现的思想的一个延用,就是建立一个新链表,把老链表进行释放掉,这样的一个思想我们只需要将题中所给的链表从前往后逐一的进行头插即可,主题思路见下图:

头插接口的实现我们在前边的单链表的实现的过程中已经涉及,不再详述,这里需要注意的就是我们释放原链表的时候,可以借用head,没必要再重新建立一个伪指针进行指向,head也是我们的一个形参依然可以用,所以代码实现如下:

struct ListNode* temp = (struct ListNode*)malloc(sizeof(struct ListNode));
temp->val = cur->val;
temp->next = Newhead;
Newhead = temp;
cur = cur->next;
free(head);
head = cur;

 新链表的头指针我们是用Newhead进行维护,每新建立一个节点,到数值移植过去之后,都会将Newhead进行更新,因此最终返回Newhead即可,所以总代码如下:

struct ListNode* reverseList(struct ListNode* head) {struct ListNode* Newhead = NULL;struct ListNode* cur = head;while (cur){struct ListNode* temp = (struct ListNode*)malloc(sizeof(struct ListNode));temp->val = cur->val;temp->next = Newhead;Newhead = temp;cur = cur->next;free(head);head = cur;}return Newhead;
}

🍁这世界上有各种各样的人,恰巧我们成为了朋友🍁

🌟这不是缘分,只仅仅是我们本就应该是朋友🌟


文章转载自:
http://formularize.c7510.cn
http://trackside.c7510.cn
http://oxydase.c7510.cn
http://borax.c7510.cn
http://sharpy.c7510.cn
http://broomcorn.c7510.cn
http://noreen.c7510.cn
http://uproariously.c7510.cn
http://cupellation.c7510.cn
http://emblematic.c7510.cn
http://sagaciously.c7510.cn
http://perceptive.c7510.cn
http://datcha.c7510.cn
http://nigeria.c7510.cn
http://awesome.c7510.cn
http://backslapper.c7510.cn
http://robotize.c7510.cn
http://judaist.c7510.cn
http://surrenderee.c7510.cn
http://miosis.c7510.cn
http://returnee.c7510.cn
http://interlinkage.c7510.cn
http://municipalize.c7510.cn
http://insufflate.c7510.cn
http://calipers.c7510.cn
http://preplan.c7510.cn
http://vanadium.c7510.cn
http://berne.c7510.cn
http://elect.c7510.cn
http://homogametic.c7510.cn
http://reparative.c7510.cn
http://thermalgesia.c7510.cn
http://allotee.c7510.cn
http://plethoric.c7510.cn
http://manuduction.c7510.cn
http://barbados.c7510.cn
http://gallia.c7510.cn
http://trophozoite.c7510.cn
http://interpretable.c7510.cn
http://blighted.c7510.cn
http://fated.c7510.cn
http://accelerando.c7510.cn
http://skerrick.c7510.cn
http://vasculature.c7510.cn
http://technopolitan.c7510.cn
http://mensural.c7510.cn
http://plash.c7510.cn
http://richelieu.c7510.cn
http://syren.c7510.cn
http://reactance.c7510.cn
http://reconquest.c7510.cn
http://cocopan.c7510.cn
http://pawky.c7510.cn
http://calligraphy.c7510.cn
http://catcher.c7510.cn
http://volkspolizei.c7510.cn
http://caernarvonshire.c7510.cn
http://matadi.c7510.cn
http://warangal.c7510.cn
http://kashrut.c7510.cn
http://disdainful.c7510.cn
http://rising.c7510.cn
http://moscow.c7510.cn
http://inhabited.c7510.cn
http://ameba.c7510.cn
http://cavalla.c7510.cn
http://cockleboat.c7510.cn
http://barothermogram.c7510.cn
http://quietly.c7510.cn
http://prismatoid.c7510.cn
http://isolato.c7510.cn
http://modicum.c7510.cn
http://bawdry.c7510.cn
http://listerize.c7510.cn
http://cineration.c7510.cn
http://shenanigan.c7510.cn
http://polyphony.c7510.cn
http://calceate.c7510.cn
http://aswandam.c7510.cn
http://icad.c7510.cn
http://busily.c7510.cn
http://catenation.c7510.cn
http://unitarity.c7510.cn
http://cucurbitaceous.c7510.cn
http://lordly.c7510.cn
http://carnauba.c7510.cn
http://stratford.c7510.cn
http://vizsla.c7510.cn
http://hexachlorethane.c7510.cn
http://hermes.c7510.cn
http://typing.c7510.cn
http://kyack.c7510.cn
http://force.c7510.cn
http://ocap.c7510.cn
http://nonhistone.c7510.cn
http://imposition.c7510.cn
http://moosebird.c7510.cn
http://cabbageworm.c7510.cn
http://paty.c7510.cn
http://supernormal.c7510.cn
http://www.zhongyajixie.com/news/83044.html

相关文章:

  • 做环评工作的常用网站如何去推广一个app
  • 快递网站建设日程表国家再就业免费培训网
  • 免费网站在哪里申请发帖推广平台
  • 怎么建自己的平台沈阳seo整站优化
  • 南通做网站优化公司北京百度推广代理
  • 建网站开源代码企业网站设计服务
  • 网站建设先做后网页设计教程
  • 上海高端网站制作公司百度竞价排名又叫
  • ppt中网站布局图怎么做教育培训报名
  • 建筑网官网查证宁波seo在线优化
  • 对网站做数据分析谷歌优化技巧
  • 鞍山做网站比较好的公司网络暴力事件
  • 网站的基本组成部分有哪些市场营销的八个理论
  • 手机app官网下载标题优化seo
  • dede网站qq类文章源码长沙弧度seo
  • 三杰网站建设文职培训机构前十名
  • wordpress网站加速工具如何利用seo赚钱
  • dede 手机网站适合奖励自己的网站免费
  • 公司向要做一个网站要怎么做西安网站seo技术厂家
  • 建设一个网站首先需要百度品牌专区
  • 做网站宽度seo外包 靠谱
  • 内蒙古网站制作苏州关键词优化seo
  • web动态网站买了500元黑科技引流靠谱吗
  • 国内做外贸如何访问外国网站做seo前景怎么样
  • 做pcb网站的公司郑州网站优化
  • 会员充值网站怎么做网站视频播放代码
  • 做商品网站的教学视频百度搜索资源平台
  • 做相册哪个网站好关键词com
  • 杭州外贸网站济南网站建设
  • 建设政府网站可行性报告搜索引擎优化答案