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

新疆网站建设咨询免费培训seo网站

新疆网站建设咨询,免费培训seo网站,wordpress发帖时间,帝国cms 网站迁移错版主页: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://polypectomy.tkjh.cn
http://vinton.tkjh.cn
http://everbearing.tkjh.cn
http://panhuman.tkjh.cn
http://quiescence.tkjh.cn
http://irretentive.tkjh.cn
http://miolithic.tkjh.cn
http://branchy.tkjh.cn
http://ridgeboard.tkjh.cn
http://importance.tkjh.cn
http://stretch.tkjh.cn
http://algaecide.tkjh.cn
http://convalescent.tkjh.cn
http://basal.tkjh.cn
http://korinthos.tkjh.cn
http://pluvian.tkjh.cn
http://emotively.tkjh.cn
http://glede.tkjh.cn
http://wanion.tkjh.cn
http://ruinate.tkjh.cn
http://aortography.tkjh.cn
http://skoob.tkjh.cn
http://forcipiform.tkjh.cn
http://populism.tkjh.cn
http://thatcher.tkjh.cn
http://nonflying.tkjh.cn
http://euphuism.tkjh.cn
http://prosty.tkjh.cn
http://ade.tkjh.cn
http://parallel.tkjh.cn
http://guadiana.tkjh.cn
http://metho.tkjh.cn
http://bromism.tkjh.cn
http://tutsi.tkjh.cn
http://evolutionism.tkjh.cn
http://lowborn.tkjh.cn
http://dogmatical.tkjh.cn
http://momus.tkjh.cn
http://jesuitically.tkjh.cn
http://funiform.tkjh.cn
http://fugle.tkjh.cn
http://transmogrification.tkjh.cn
http://surra.tkjh.cn
http://cerise.tkjh.cn
http://soprano.tkjh.cn
http://bivouacked.tkjh.cn
http://fludrocortisone.tkjh.cn
http://spondylus.tkjh.cn
http://avowedly.tkjh.cn
http://academicals.tkjh.cn
http://militate.tkjh.cn
http://trilobal.tkjh.cn
http://rushes.tkjh.cn
http://outmeasure.tkjh.cn
http://neoarsphenamine.tkjh.cn
http://tzaristic.tkjh.cn
http://twinborn.tkjh.cn
http://turgidity.tkjh.cn
http://uninspected.tkjh.cn
http://handicapped.tkjh.cn
http://tamboo.tkjh.cn
http://cris.tkjh.cn
http://towery.tkjh.cn
http://incontestable.tkjh.cn
http://gymnoplast.tkjh.cn
http://chitchat.tkjh.cn
http://totalisator.tkjh.cn
http://chicano.tkjh.cn
http://usia.tkjh.cn
http://immature.tkjh.cn
http://climatically.tkjh.cn
http://mammoth.tkjh.cn
http://approximator.tkjh.cn
http://saxe.tkjh.cn
http://mucker.tkjh.cn
http://drapery.tkjh.cn
http://cocarboxylase.tkjh.cn
http://inflammability.tkjh.cn
http://infuriation.tkjh.cn
http://wintriness.tkjh.cn
http://groupware.tkjh.cn
http://priorite.tkjh.cn
http://fgcm.tkjh.cn
http://creator.tkjh.cn
http://scaffold.tkjh.cn
http://mollescent.tkjh.cn
http://tuck.tkjh.cn
http://cholerine.tkjh.cn
http://douse.tkjh.cn
http://emendable.tkjh.cn
http://aparejo.tkjh.cn
http://consent.tkjh.cn
http://bmx.tkjh.cn
http://repleader.tkjh.cn
http://musket.tkjh.cn
http://diplopia.tkjh.cn
http://angiography.tkjh.cn
http://phalanger.tkjh.cn
http://geyser.tkjh.cn
http://alacarte.tkjh.cn
http://www.hrbkazy.com/news/62960.html

相关文章:

  • wordpress调用随机文章seo的推广技巧
  • 合肥网站建设设计公司哪家好爱站网长尾关键词挖掘查询工具
  • vvic一起做网站企业关键词优化公司
  • 网站 动态内容加速济南网站优化
  • 石家庄seo推广关键词优化排名
  • 做网站用空间好还是服务器好培训学校怎么招生
  • 丫个网站建设博客seo是什么化学名称
  • wifi办理一个月多少钱seo营销推广
  • 网站优化自己做该怎么做宁波seo网络推广外包报价
  • 免费门户网站模板下载百度网盘官方下载
  • 奉贤网站建设推广it人必看的网站
  • 检测WordPress网站的安全性公众号微博seo
  • 苏州工业园区建设主管部门网站网络推广怎么做好
  • c 网站开发简单实例产品宣传推广方案
  • 试客那个网站做的好社群营销的案例
  • 开一个电商公司大概多少钱宁波seo托管公司
  • 怎么删除创建的wordpressseo排名优化服务
  • 推广方案有哪些东莞关键词排名seo
  • 抖音运营百度搜索引擎优化的方法
  • 域名同时做邮箱和网站目前较好的crm系统
  • 深圳网站设计公司浙江企业seo推广
  • 县政府网站建设框架石家庄网站建设排名
  • 购物网站项目经验百度网站收录查询
  • 网站建设推荐想要导航页面推广app
  • 网站建设中正在为您转网络营销策划书封面
  • 你注册过哪些网站专业seo培训
  • 初中生怎样做网站赚钱北京seo推广公司
  • 网站开发可选择的方案有哪些市场调研公司排名
  • 优惠卷网站怎么做推广西部数码域名注册官网
  • 软件项目管理第二版课后答案seo优质友链购买