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

手机可以制作网站吗外贸建站主机空间哪家好

手机可以制作网站吗,外贸建站主机空间哪家好,一般通过什么渠道了解防灾减灾知识?(可多选),dz可以做门户网站吗#x1f525;博客主页#xff1a;小王又困了 #x1f4da;系列专栏#xff1a;数据结构 #x1f31f;人之为学#xff0c;不日近则日退 ❤️感谢大家点赞#x1f44d;收藏⭐评论✍️ 目录 一、移除链表元素 #x1f4a1;方法一#xff1a; #x1f4a1;方法二… 博客主页小王又困了 系列专栏数据结构 人之为学不日近则日退  ❤️感谢大家点赞收藏⭐评论✍️ 目录 一、移除链表元素 方法一 方法二 二、链表的中间节点 方法一 三、链表中倒数第k个结点 方法一 四、反转链表 方法一 方法二 五、合并两个有序链表 方法一  ️前言 在上一期中我们给大家介绍了单链表也了解了单链表的实现。接下来就让我们进入实践练习一些经典题目让我们对单链表的理解更加深入。 一、移除链表元素 题目 方法一 我们使用两个指针遍历数组遇到与 val 相同的数据域就删除这个节点。我们在思考问题时要想全面当要删除头节点时常规方法就无法实现对于删除头节点要做单独处理。 常规删除   头节点删除 struct ListNode* removeElements(struct ListNode* head, int val) {struct ListNode* prevNULL;struct ListNode* curhead;while(cur!NULL){//删除if(valcur-val){//头删if(curhead){headcur-next;free(cur);curhead;}//常规else{prev-nextcur-next;free(cur);curprev-next;}}//遍历else{prevcur;curcur-next;}}return head; } 方法二 我们通过遍历把节点的数据域不等于val的节点尾接到新的链表中。我们要考虑第一个节点是不是要删除的。最后一个节点的指针域置空要放在循环结束后判断tail是否为空指针。 struct ListNode* removeElements(struct ListNode* head, int val) {struct ListNode* newheadNULL;struct ListNode* tailNULL;struct ListNode* curhead;while(cur){if(cur-nextval){//删除struct ListNode* delcur;curcur-next;free(del);}else{//尾插if(tailNULL){newheadtailcur;//tailcur;}else{tail-nextcur;tailtail-next; }curcur-next;}}if(tail){tail-nextNULL;}return newhead; } 二、链表的中间节点 题目 方法一 我们可以定义两个指针快指针一次走两步慢指针一次走一步当快指针走到结尾时慢指针正好走了一半这样我们就可以找到中间节点。 struct ListNode* middleNode(struct ListNode* head) {struct ListNode* fasthead;struct ListNode* slowhead;while(fastfast-next){fastfast-next-next;slowslow-next;}return slow; } 三、链表中倒数第k个结点 题目 方法一 我们可以参考上一题的方法同样定义快慢指针想让快指针走k步然后在同时走走到fast为空指针就找了倒数第k个节点。有可能链表没有k个节点所以我们要加入判断。 struct ListNode* FindKthToTail(struct ListNode* pListHead, int k ) {struct ListNode* fastpListHead;struct ListNode* slowpListHead;while(k--){//链表没有k步长if(fastNULL){return NULL;}fastfast-next;}while(fast!NULL){fastfast-next;slowslow-next;}return slow; } 四、反转链表 题目 方法一 我们定义三个指针n1,n2,n3来改变节点链接的顺序。将头节点变为尾节点当n2为空指针时n1就为链表的头节点只需返回n1就可以。两个指针倒方向一个指针保持下一个。 struct ListNode* reverseList(struct ListNode* head) {struct ListNode* n1NULL;struct ListNode* n2head;struct ListNode* n3;if(n2){n3n2-next;}while(n2){n2-nextn1;//往后走n1n2;n2n3;if(n3){n3n3-next;}}return n1; } 方法二 将链表的节点一个一个拿下来进行头插。这里要注意赋值的顺序。 struct ListNode* reverseList(struct ListNode* head) {struct ListNode* curhead;struct ListNode* newnodeNULL;while(cur){//保存节点struct ListNode* nextcur-next;//头插cur-nextnewnode;newnodecur;curnext;}return newnode; } 五、合并两个有序链表 题目 方法一  我们创建一个带哨兵位的链表这样在尾插时就不用判断是否是第一个节点可以提高效率。要记住在最后要将哨兵位的空间释放。 struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2) {if(list1NULL){return list2;}if(list2NULL){return list1;}struct ListNode* headNULL;struct ListNode* tailNULL;//创建一个哨兵位headtail(struct ListNode*)malloc(sizeof(struct ListNode));while(list1list2){if(list1-vallist2-val){tail-nextlist1;tailtail-next;list1list1-next;}else{tail-nextlist2;tailtail-next;list2list2-next;}}if(list1){tail-nextlist1;}if(list2){tail-nextlist2;}struct ListNode* delhead;headhead-next;free(del);return head; } 本次的内容到这里就结束啦。希望大家阅读完可以有所收获同时也感谢各位读者三连支持。文章有问题可以在评论区留言博主一定认真认真修改以后写出更好的文章。你们的支持就是博主最大的动力。
http://www.pierceye.com/news/87701/

相关文章:

  • dw做的网站怎么ppt做视频模板下载网站有哪些内容
  • 海口手机网站制作廊坊网站建设模板
  • 精品国内网站建设软装设计方案ppt
  • 百度站长平台网址尚硅谷前端培训多少钱
  • 苏州做网站优化中国建筑总公司网站
  • 杭州网站建设 双收图片设计图
  • 哪些网站可以做移动端模板做网站比较好的公司有哪些
  • 网站建设相关图片公司邮箱一般用哪个
  • 商城网站建设方案书网站 提示建设中
  • 济南学网站建设哪里好做网站公司-汉狮网络
  • 织梦网站开发语言长沙正规竞价优化服务
  • 跨境电商平台网站海兴县做网站价格
  • 邢台专业做网站费用网站建设管理专业介绍
  • 大连能做网站的公司有WordPress自定义ID插件
  • 专业的医疗网站建设网站班级文化建设方案
  • 我的网站模板下载不了网站正在建设中换句话表达
  • 做网站图片处理问题江西宜春市建设局网站
  • 台州网站优化方案手机编码制网站
  • flash 学习网站小微企业注册流程及费用
  • 珠海品牌网站制作08r2 搭建php网站
  • 包头市做网站微信怎么推广
  • 网站安全维护怎么做今天深圳新增确诊最新消息
  • 建行购物网站青岛网站集约化管理平台
  • 吴桥网站建设网页设计模板html代码音乐
  • 福州做网站的公司多少钱湖南正规竞价优化服务
  • 网上有哪些网站做兼职触摸终端软件门户网站
  • 贸易网站怎么做智慧团建注册登录入口官网手机版
  • 旅游网站制作模板5在线做网站
  • 北京景网站建设专业网站建设的软件
  • 平顶山集团网站建设学生个人网页制作代码