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

郑州房地产网站建立网站数据库实验报告

郑州房地产网站,建立网站数据库实验报告,北京广告有限公司,网络维护好学吗目录 ❣️1.题目❣️ ❣️2.解答❣️ #x1f49e;方法一#xff1a;暴力法 #x1f49e;方法二#xff1a; 尾插法 #x1f49e;方法三#xff1a;哨兵位法 ❣️1.题目❣️ 给你一个链表的头节点 head 和一个整数 val #xff0c;请你删除链表中所有满足 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 500 val 50 ❣️2.解答❣️ 方法一暴力法 算法思路 遍历链表如果当前节点的值等于val则删除该节点并且修改前驱节点的next指针指向后继节点。如果当前节点的值不等于val则将前驱节点指向当前节点当前节点指向下一个节点。 具体实现 使用两个指针prev和cur分别指向前驱节点和当前节点。开始遍历前先初始化prev为NULLcur为head即第一个节点。然后进行while循环当cur指向NULL时停止。在循环中如果cur指向的节点的值等于val则删除该节点将后继节点指针保存在next中。如果prev不为NULL则修改prev的next指针指向next否则说明删除的是头节点直接修改head为next。最后将cur指向next继续下一轮循环。如果cur指向的节点的值不等于val则将prev指向curcur指向下一个节点。最后返回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 都指向 NULLcur 指向原链表的头结点 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,*tailNULL; struct ListNode*cur head; while(cur) { //不是val的节点取下来尾插 if(cur-val !val) { //尾插 if(tail NULL) newhead tail cur; else { tail-next cur; tailtail-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://www.hkea.cn/news/14357493/

相关文章:

  • 做猎头可以在哪些网站注册wordpress 无法安装
  • 郑州专业网站建设价格织梦笑话娱乐网站源码2w数据+36条采集规则
  • 海外网站制作手机app软件下载安装
  • 网站公司成功案例怎么写wordpress定时任务原理
  • wordpress免费网站模板下载地址网建教程
  • 摄影师网站推荐廊坊网站建设兼职
  • 知名营销网站开发成都百度推广公司地址
  • 珠宝购物网站的建设代理公司注册后果严重
  • 网站做优化必须要ftp吗姑苏区网络推广服务
  • 网站外包后百度降权网站建设项目设计报告
  • 网站做跳转付款wordpress 子菜单顺序
  • 广东省建设厅网站wordpress 外贸插件
  • 郑州网站app开发网页基础知识
  • vs做网站登录界面外贸类网站建设
  • 南通做网站的花云在网站的标题上怎么做图标
  • 壶关网站建设做创意美食的视频网站
  • 学做川菜最好的网站wordpress 移动版主题
  • 十大免费视频素材网站合肥seo排名优化
  • 购物网站建设特色高清crm软件价格欧美
  • 做购物网站的素材华强北
  • 惠州微网站建设专升本可以报考哪些大学
  • 更改wordpress主题名称嘉兴网站排名优化费用
  • 做宣传的网站有哪些电商网站搜索引擎怎么做
  • 鹤庆县公路建设网站济南企业建站哪家做的好
  • 网站接入支付宝在线交易怎么做网站建设实施计划包括哪些方面
  • 网站建设与管理专业实训室商业网点和商铺的区别
  • 哪个网站有做电箱电柜的图纸音乐分享 wordpress
  • 网站开发+演讲seo技术代理
  • 十大免费建站程序wordpress做网站图标的软件
  • 国外建站用什么最多做网站如何获得阿里巴巴投资