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

网站建设员性质给wordpress加相册

网站建设员性质,给wordpress加相册,网站响应式和非响应式,网站建设 广告推广一、移除链表元素 leetcode链接 题目描述#xff1a; 给你一个链表的头节点 head 和一个整数 val #xff0c;请你删除链表中所有满足 Node.val val 的节点#xff0c;并返回 新的头节点 。 思路#xff1a; 正常遍历#xff0c;找到value的值与题目中相同的结点去fr…一、移除链表元素 leetcode链接 题目描述 给你一个链表的头节点 head 和一个整数 val 请你删除链表中所有满足 Node.val val 的节点并返回 新的头节点 。 思路 正常遍历找到value的值与题目中相同的结点去free掉分为两种情况 第一种就是头结点就是value值直接将头节点指向next 第二种情况就是第二个结点开始是value需要有一个前结点指向value结点的下一个。 源码 struct ListNode* removeElements(struct ListNode* head, int val) {//链表本身为空if(headNULL)return NULL;struct ListNode* prev NULL;while(1)//头节点开始就是值{if(head-valval){prevhead;headhead-next;free(prev);if(headNULL){return NULL;}}else{break;}}struct ListNode* cur head;while(cur)//从第二个开始才是value可以使用prev因为第一个不是value可以存储{//这一部分卡了好久if(cur-valval){prev-nextcur-next; struct ListNode* delcur;free(del);curprev-next;}else{prevcur;curcur-next;}}return head; } 二、链表的中间结点 leetcode链接 题目描述 给你单链表的头结点 head 请你找出并返回链表的中间结点。 如果有两个中间结点则返回第二个中间结点。 思路 用快慢指针法。 进行一个循环先让快指针走两步然后让慢指针走一步直到快指针指向空或者快指针的next指向空这时候的慢指针就指向了中间结点并且也满足第二个结点。 代码 struct ListNode* middleNode(struct ListNode* head) {//快慢指针快指针走两步慢指针走一步struct ListNode* slow head;struct ListNode* fast head;while(fastfast-next){fastfast-next-next;slowslow-next;}return slow; } 三、链表中倒数第k个结点 牛客网链接 题目描述 输入一个链表输出该链表中倒数第k个结点。 思路 也是快慢指针的思想。 先让快指针走k步然后再让快指针和慢指针一起走直到快指针为空。 这题有一些注意细节的点比如k大于链表结点的个数k0但这些都是小细节主要思想还是快慢指针~ 代码 struct ListNode* FindKthToTail(struct ListNode* pListHead, int k ) {// write code hereif(pListHeadNULL||k0)//k0和链表为空的情况{return NULL;}struct ListNode* fastpListHead;struct ListNode* slowpListHead;while(k--)//先让快指针走k步{fastfast-next;if(fastNULL){break;}}if(k0)//k大于链表结点的个数的情况{return NULL;}while(fast){fastfast-next;slowslow-next;}return slow; } 四、反转链表 leetcode链接 题目描述 给你单链表的头节点 head 请你反转链表并返回反转后的链表。 思路 顺序遍历链表从第一个结点开始进行尾插注意这里的尾插不是手撕单链表里面的pushback函数而是应该将结点一个一个取下来。 相当于我们又学习了另外一种尾插的方式不是直接改变头节点的值而是将原有的头节点指向新的头节点。 代码 struct ListNode* reverseList(struct ListNode* head) {struct ListNode* newheadNULL;struct ListNode* nextNULL;//头插while(head){nexthead-next;head-nextnewhead;newheadhead;headnext;}return newhead; } 五、合并两个有序链表 leetcode链接 题目描述 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 思路 将两个链表的第一个结点顺序比较取小的尾插到一个新的头结点上若一个提前结束则将另一个直接尾插到新链表上 代码 struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2) {if(list1NULL){return list2;}if(list2NULL){return list1;}//取小的尾插//为何这题可以直接定义一个尾结点struct ListNode* newheadNULL;struct ListNode* tailNULL;while(list1 list2){if(list1-val list2-val){if(newheadNULL){newheadtaillist1;//tailnewhead-next;}else{tail-nextlist1;//taillist1-next;tailtail-next;}list1list1-next;}else{if(newheadNULL){tailnewheadlist2;//tailnewhead-next;}else{tail-nextlist2;tailtail-next;}list2list2-next;}} if(list1)//剩余直接尾插{//taillist1;tail-nextlist1;} if(list2){//taillist2;tail-nextlist2;}return newhead; } 小心得 在数据结构的新篇章里注意的小细节更多最好将能考虑的情况都要考虑到不然调试起来比较麻烦。一般只有将头结点为空的情况下直接赋值等于其余一般都需要进行next链接。
http://www.pierceye.com/news/117047/

相关文章:

  • 阿里云服务器如何做两个网站网站建站对象
  • 做网站毕业实训报告网站架构企业收费标准
  • 高端品牌网站建设公司哪家好网页设计与制作个人总结
  • 自己电脑建设网站哈尔滨专业网站建设哪个好
  • 福建设计招标网站移动端网站和app开发
  • 山东网站制作团队门户网站内容管理建设方案
  • 新开传奇网站排行中国建设网官方网站app
  • 网站营运费广州网络公司建站
  • 小吃网站建设如何提高网站收录量
  • 全球网站域名做网站设计学那个专业好
  • 新手学网站建设解疑与技巧1200例北京网络行业协会
  • 医生工作室网站建设sae wordpress 主题
  • 防水网站怎么做义乌 外贸网站 开发
  • 中国做外贸的网站有哪些内容虚拟商品购物网站源码
  • 如何将数据写入wordpress文站房屋装修案例
  • 做网站的积木式编程网站开发中的qq登录
  • 官方网站作用咨询公司简介
  • 个人手机版网站建设电影网站模板html
  • 招聘网站开发源码广州服务类拓客软件
  • 婚庆策划公司加盟江门关键词优化价格
  • 百度网站入口ps网页设计实验报告
  • 做网站准备材料怎么做优化网站排名
  • asp技校网站手游网页版
  • 网站建设合同要交印花税吗烟台网站的建设
  • 可以做锚文本链接的网站广告公司创意广告语
  • 建设网站的题目旅游网页素材
  • 做网站很难吗新手学做网站 pdf
  • 建设电影推荐网站的项目背景网站开发的公司电话
  • 建设银行 福建分行招聘网站cctv5体育现场直播
  • 网站那个做的比较好的微信辅助网站制作