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

网站建设情况自查报告建设集团网站 技术支持中企动力

网站建设情况自查报告,建设集团网站 技术支持中企动力,财务软件免费版,建设高校网站的现实意义目录 一、移除链表元素 二、删除排序链表中的重复元素 三、删除排序链表中的重复元素 || 四、删除链表的倒数第 N 个结点 一、移除链表元素 给你一个链表的头节点 head 和一个整数 val #xff0c;请你删除链表中所有满足 Node.val val 的节点#xff0c;并返回 新的头…目录 一、移除链表元素 二、删除排序链表中的重复元素 三、删除排序链表中的重复元素 || 四、删除链表的倒数第 N 个结点 一、移除链表元素 给你一个链表的头节点 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, 10^4] 内 1 Node.val 50 0 val 50 代码实现一 struct ListNode* removeElements(struct ListNode* head, int val) {struct ListNode* pre NULL;struct ListNode* cur head;while (cur ! NULL){if (cur-val val){if (pre NULL)  // 当删除的是首元结点时要做特殊处理避免访问空指针{head cur-next;free(cur);cur head;  // 切不可写成 cur cur-next}else{pre-next cur-next;free(cur);cur pre-next;  // 切不可写成 cur cur-next}}else{pre cur;cur cur-next;}}return head; } free(cur); cur cur-next 是一种类似刻舟求剑的典型的错误写法。 代码实现二 struct ListNode* removeElements(struct ListNode* head, int val) {struct ListNode* newhead NULL;struct ListNode* tail NULL;struct ListNode* cur head;while (cur ! NULL){if (cur-val ! val){if (newhead NULL)  // 如果新链表为空{newhead cur;tail cur;}else{tail-next cur;tail cur;}cur cur-next;}else{struct ListNode* tmp cur;cur cur-next;free(tmp);}}if (tail ! NULL)  // 避免对空指针的解引用{tail-next NULL;  }return newhead; } 将值不是 val 的结点尾插到新链表中由于尾插需要从头指针出发顺链找到尾结点时间复杂度高因此可以用一个尾指针 tail 来记录并更新尾结点的位置。 图解示例一 二、删除排序链表中的重复元素 给定一个已排序的链表的头 head 删除所有重复的元素使每个元素只出现一次 。返回 已排序的链表 。 示例 1 输入head [1,1,2] 输出[1,2]  示例 2 输入head [1,1,2,3,3] 输出[1,2,3]  提示 链表中节点数目在范围 [0, 300] 内 -100 Node.val 100 题目数据保证链表已经按升序排列 代码实现 struct ListNode* deleteDuplicates(struct ListNode* head) {if (head NULL)  // 判断是否为空表{return NULL;}struct ListNode* tail head;struct ListNode* cur head-next;while (cur ! NULL){if (cur-val ! tail-val){// 尾插tail-next cur;tail cur;cur cur-next;}else{// 删除重复的元素struct ListNode* tmp cur;cur cur-next;free(tmp);}}tail-next NULL;return head; } 三、删除排序链表中的重复元素 || 给定一个已排序的链表的头 head 删除原始链表中所有重复数字的节点只留下不同的数字 。返回 已排序的链表 。 示例 1 输入head [1,2,3,3,4,4,5] 输出[1,2,5] 示例 2 输入head [1,1,1,2,3] 输出[2,3] 提示 链表中节点数目在范围 [0, 300] 内 -100 Node.val 100 题目数据保证链表已经按升序排列 代码实现 struct ListNode* deleteDuplicates(struct ListNode* head) {struct ListNode* newhead NULL;struct ListNode* tail NULL;struct ListNode* cur head;while (cur ! NULL){// 找到第一个值不同于 cur 的结点也可能为空struct ListNode* after cur-next;while (after ! NULL after-val cur-val){after after-next;}// 判断 cur 是否属于有重复数字的结点if (cur-next after) // 不属于{// 尾插if (newhead NULL) // 如果新链表为空{newhead tail cur;}else{tail-next cur;tail cur;}cur cur-next;}else // 属于{while (cur ! after){struct ListNode* tmp cur;cur cur-next;free(tmp);}}}if (tail ! NULL){tail-next NULL;}return newhead; } 四、删除链表的倒数第 N 个结点 给你一个链表删除链表的倒数第 n 个结点并且返回链表的头结点。 示例 1 输入head [1,2,3,4,5], n 2 输出[1,2,3,5] 示例 2 输入head [1], n 1 输出[] 示例 3 输入head [1,2], n 1 输出[1] 提示 链表中结点的数目为 sz 1 sz 30 0 Node.val 100 1 n sz 代码实现一 struct ListNode* removeNthFromEnd(struct ListNode* head, int n) {struct ListNode* pre_slow NULL;struct ListNode* slow head;struct ListNode* fast head;while (--n){fast fast-next; // 由于 1 n sz所以 fast 不可能走到空}while (fast-next ! NULL){pre_slow slow;slow slow-next;fast fast-next;}if (pre_slow NULL){head slow-next;free(slow);}else{pre_slow-next slow-next;free(slow);}return head; } 相关练习链表的中间结点、链表中倒数第 k 个结点 代码实现二 struct ListNode* removeNthFromEnd(struct ListNode* head, int n) {// 设置一个哨兵位的头结点struct ListNode* guard (struct ListNode*)malloc(sizeof(struct ListNode));guard-next head;// 计算链表的长度包括头结点int len 0;struct ListNode* cur guard;while (cur ! NULL){len;cur cur-next;}// 找到倒数第 n 1 个结点可能是 guardstruct ListNode* pre guard;for (int i 0; i len - n - 1; i){pre pre-next;}// 删除倒数第 n 个结点struct ListNode* tmp pre-next;pre-next tmp-next;free(tmp);// 删除哨兵位的头结点并返回 headhead guard-next;free(guard);return head; } 设置哨兵位的头结点的好处是便于首元结点的处理。
http://www.tj-hxxt.cn/news/221947.html

相关文章:

  • 企业建站官网定制网站建设推广方案
  • 中国建设银行大学生招聘信息网站移动端漂亮网站
  • .net可以做网站做游戏 博客园网络营销推广实例
  • 哪个网站可以接项目做免费发帖推广平台
  • 无极app定制开发公司网站模板办公室装修设计效果图大全
  • 苏州网站建设一条龙政务服务网站建设资金
  • 网站备案要网站做才可以使用吗汕头建设银行各支行电话
  • 徐州智能模板建站佳木斯市郊区建设局网站
  • 好的建网站公司成都市微信网站建设报价
  • 公司为什么要网站备案竞价服务托管公司
  • 网站设计的论坛微信h5制作平台
  • 网站自助建设源码企业产品展示型网站案例
  • 定制化网站开发多少钱网站开发技术简介dw
  • 网站开发哪里有直播视频素材
  • 网站建设招标提问资源专业网站优化排名
  • 微商城网站建设咨询南宁代理记账
  • 网站收录优化欧莱雅网站建设与推广方案
  • 德兴网站建设公司美食类网站开发需求分析
  • 做推广适合哪些网站英文网站建设需要准备什么
  • dede 网站建设模板品牌推广服务
  • 南阳网站排名优化价格logo商标设计
  • 微信公众号怎么进行网站建设电脑系统优化软件
  • 义乌购物网站建设多少钱网络营销做女鞋的网站设计
  • 郏县住房和城乡建设局网站引流推广推广微信hyhyk1效果好
  • 济南手机网站四川省信用建设促进会网站
  • 成都金牛网站建设公司建e室内设计
  • 做网站需要些什么网站创作
  • 网站迁移教材旅游类网站如何做推广
  • 公司域名让做网站的做个网上平台大概要多少钱
  • 自助网站建设系统软件郑州哪家做网站好