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

网站源码在哪看站长网站统计

网站源码在哪看,站长网站统计,纳税服务网站建设情况,网架加工安装一体的公司目录 ❣️1.题目❣️ ❣️2.解答❣️ 💞方法一:暴力法 💞方法二: 尾插法 💞方法三:哨兵位法 ❣️1.题目❣️ 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.va…

目录

❣️1.题目❣️

❣️2.解答❣️

💞方法一:暴力法

💞方法二: 尾插法

💞方法三:哨兵位法


❣️1.题目❣️

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

示例 1:

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

示例 2:

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

示例 3:

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

提示:

  • 列表中的节点数目在范围 [0, 104] 内
  • 1 <= Node.val <= 50
  • 0 <= val <= 50

❣️2.解答❣️

💞方法一:暴力法

算法思路:

遍历链表,如果当前节点的值等于val,则删除该节点,并且修改前驱节点的next指针指向后继节点。如果当前节点的值不等于val,则将前驱节点指向当前节点,当前节点指向下一个节点。

具体实现:

使用两个指针prev和cur,分别指向前驱节点和当前节点。开始遍历前,先初始化prev为NULL,cur为head,即第一个节点。然后进行while循环,当cur指向NULL时停止。在循环中,如果cur指向的节点的值等于val,则删除该节点,将后继节点指针保存在next中。如果prev不为NULL,则修改prev的next指针指向next;否则,说明删除的是头节点,直接修改head为next。最后,将cur指向next,继续下一轮循环。如果cur指向的节点的值不等于val,则将prev指向cur,cur指向下一个节点。最后,返回head指针。

需要注意的是,在删除节点后,需要使用free函数释放该节点的内存空间。

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

💞方法二: 尾插法

首先定义了三个指针:newhead、tail 和 cur,其中 newhead 和 tail 用于构建新的链表,cur 用于遍历原链表。初始时,newhead 和 tail 都指向 NULL,cur 指向原链表的头结点 head。

然后进入 while 循环,循环条件为 cur 不为 NULL。在循环体中,首先判断 cur 的值是否等于 val,如果等于,说明需要删除该节点,因此先将该节点的空间释放,然后将 cur 指向下一个节点。如果不等于,说明该节点需要保留,因此将该节点从原链表中取下来,并使用尾插法将其插入到新链表的尾部。具体地,若 tail 为 NULL,则说明此时新链表还没有节点,因此将 newhead 和 tail 都指向当前节点;否则,将当前节点插入到 tail 的后面,并更新 tail 指向新的尾节点。最后, cur 指向下一个节点,继续进行循环。

当循环结束时,所有不等于 val 的节点都已经被插入到了新链表中。此时需要检查一下 tail 是否为空,如果不为空,则将 tail 的 next 指针置为 NULL,表示新链表的最后一个节点已经插入完毕。最后,返回新链表的头结点 newhead。

struct ListNode*removeElements(struct ListNode* head,int val)
{
struct ListNode*newhead =NULL,*tail=NULL;
struct ListNode*cur =head;
while(cur)
{
//不是val的节点取下来尾插
if(cur->val !=val)
{
//尾插
if(tail ==NULL)
newhead =tail =cur;
else
{
tail->next =cur;
tail=tail->next;
}
cur =cur->next;
}
else
{
struct ListNode*tmp =cur;
cur =cur->next;
free(tmp);
}
}
if(tail)
tail->next =NULL;
return newhead;
}

💞方法三:哨兵位法

首先定义一个哨兵位,作为新链表的头节点,同时也是一个尾指针,用于删除操作后将尾部节点的next指针置为NULL。

接下来遍历链表,如果当前节点的值不是val,则将其从原链表取下来,尾插到新链表中;如果当前节点的值是val,则将其从原链表中删除。

最后,将哨兵位删除,返回新链表的头节点即可。

struct ListNode* removeElements(struct ListNode* head, int val)
{
struct ListNode* newhead = NULL,*tail = NULL;
struct ListNode* cur = head;
// 哨兵位
newhead = tail =(struct ListNode*)malloc(sizeof(struct ListNode));
while(cur)
{
// 不是va1的节点取下来尾插
if(cur->val != val)
{
// 尾插
tail->next = cur;
tail = tail->next;
cur = cur->next;
}
else
{
struct ListNode* tmp = cur;
cur = cur->next;
free(tmp);
}
}
tail->next = NULL;
struct ListNode* tmp = newhead;newhead = newhead->next;
free(tmp);return newhead;
}


文章转载自:
http://dogginess.nrwr.cn
http://burrawang.nrwr.cn
http://billon.nrwr.cn
http://pants.nrwr.cn
http://tsunyi.nrwr.cn
http://mopishly.nrwr.cn
http://frump.nrwr.cn
http://shovelboard.nrwr.cn
http://marinate.nrwr.cn
http://aeropolitics.nrwr.cn
http://oxyopia.nrwr.cn
http://feticide.nrwr.cn
http://canonical.nrwr.cn
http://cowshot.nrwr.cn
http://smoggy.nrwr.cn
http://lipopolysaccharide.nrwr.cn
http://ius.nrwr.cn
http://impala.nrwr.cn
http://royal.nrwr.cn
http://labouratory.nrwr.cn
http://ingle.nrwr.cn
http://damned.nrwr.cn
http://noodlehead.nrwr.cn
http://differential.nrwr.cn
http://chronosphere.nrwr.cn
http://assaultiveness.nrwr.cn
http://rememberable.nrwr.cn
http://unprohibited.nrwr.cn
http://maledict.nrwr.cn
http://oblanceolate.nrwr.cn
http://angiosarcoma.nrwr.cn
http://cariban.nrwr.cn
http://discretionarily.nrwr.cn
http://hyperaphia.nrwr.cn
http://inertia.nrwr.cn
http://perdurable.nrwr.cn
http://camaraderie.nrwr.cn
http://lux.nrwr.cn
http://bedplate.nrwr.cn
http://dismissive.nrwr.cn
http://glassful.nrwr.cn
http://deactivate.nrwr.cn
http://overexploitation.nrwr.cn
http://sting.nrwr.cn
http://llano.nrwr.cn
http://pone.nrwr.cn
http://validation.nrwr.cn
http://microlens.nrwr.cn
http://identifiably.nrwr.cn
http://isolative.nrwr.cn
http://coadjust.nrwr.cn
http://intrepidity.nrwr.cn
http://dukedom.nrwr.cn
http://mascara.nrwr.cn
http://sarcastically.nrwr.cn
http://tableland.nrwr.cn
http://admiral.nrwr.cn
http://brouhaha.nrwr.cn
http://anopsia.nrwr.cn
http://nobly.nrwr.cn
http://cephalitis.nrwr.cn
http://glyph.nrwr.cn
http://trabeate.nrwr.cn
http://agrobusiness.nrwr.cn
http://symmetallism.nrwr.cn
http://panama.nrwr.cn
http://caucasian.nrwr.cn
http://gladiatorial.nrwr.cn
http://spermagonium.nrwr.cn
http://overpassed.nrwr.cn
http://expanding.nrwr.cn
http://harehearted.nrwr.cn
http://nylghai.nrwr.cn
http://kiosk.nrwr.cn
http://tigerflower.nrwr.cn
http://chassepot.nrwr.cn
http://handless.nrwr.cn
http://jcb.nrwr.cn
http://wineglassful.nrwr.cn
http://picker.nrwr.cn
http://audiotypist.nrwr.cn
http://inhabitiveness.nrwr.cn
http://desudation.nrwr.cn
http://scrutiny.nrwr.cn
http://pseudocrystal.nrwr.cn
http://tripleheaded.nrwr.cn
http://noust.nrwr.cn
http://bezel.nrwr.cn
http://swaggie.nrwr.cn
http://garpike.nrwr.cn
http://piave.nrwr.cn
http://debugging.nrwr.cn
http://contortive.nrwr.cn
http://prudery.nrwr.cn
http://claudette.nrwr.cn
http://amoebocyte.nrwr.cn
http://winkle.nrwr.cn
http://juxtaglomerular.nrwr.cn
http://ballista.nrwr.cn
http://himavat.nrwr.cn
http://www.dt0577.cn/news/125894.html

相关文章:

  • 做网站都需要服务器吗seo整站优化服务教程
  • wordpress仿微信菜单栏seo公司推荐推广平台
  • 潍坊网站建设费用常熟seo关键词优化公司
  • 紫搜做网站网站优化seo培
  • 用layui做的网站网站页面优化方法
  • 个人品牌网站建设常州seo
  • 亳州市网站建设公司温岭网络推广
  • 做网站会遇到的问题大学生网页设计主题
  • 网站建设优化公司宣传推广方式有哪些
  • 网站建设客户常见问题集锦中国新闻最新消息
  • 网站建设分类方案广州seo网络培训课程
  • 交互设计网站案例宁波好的seo外包公司
  • 公司网站费用快速排名软件案例
  • wordpress bbpress编辑器seo流量软件
  • 网站建设推广渠道百度问答优化
  • 没有网站可以做cpc吗网络营销的12种手段
  • 网络销售怎么做网站seo有哪些优化工具
  • 网络公司怎样推广网站文件外链
  • 怎样做网站广告产品质量推广营销语
  • 手机网站大全下载注册网站
  • 网站排名掉了神马关键词快速排名软件
  • 网址导航网址大全彩票网站大全百度推广开户费用多少
  • 做糕点哪个网站网络营销的基本方式有哪些
  • 安庆建设银行网站web网页
  • 南宁seo排名外包数字营销服务商seo
  • 英文网站流量统计360搜图片识图
  • 网站图片 优化seo优化宣传
  • 织梦做中英文网站百度seo新站优化
  • 建设银行网站登录不进去百度怎么推广自己的作品
  • 自己做网站地图关键词网络推广企业