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

怎么把自己做的网站发布到网上注册域名查询网站官网

怎么把自己做的网站发布到网上,注册域名查询网站官网,建立网站时首先考虑的问题,数字营销技术应用Leetcode203 移除链表元素 题目描述: 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 。 示例 1: 输入:head [1,2,6,3,4,5,6], val 6 输出&#xf…

Leetcode203

移除链表元素

题目描述:

给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点

示例 1:

img

输入: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
输出:[]

原链表操作

如果我们选择在原链表上进行操作的话,我们需要考虑两个方面的问题:

  1. 头节点为我们要移除的元素
  2. 非头结点为我们要移除的元素

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Java版本

class Solution {public ListNode removeElements(ListNode head, int val) {//处理头节点while(head != null && head.val == val){head = head.next;} //处理头节点为空的情况if(head == null){return head;}//确保head.val != val 的情况ListNode pre = head;ListNode cur = head.next;while(cur != null){if(cur.val == val){pre.next = cur.next;}else{pre = cur;}cur = cur.next;}return head;}
}
class Solution {public ListNode removeElements(ListNode head, int val) {while(head != null && head.val == val){head = head.next;}ListNode cur = head;while(cur != null){while(cur.next != null && cur.next.val == val){cur.next = cur.next.next;}cur = cur.next;}return head;}
}

C++版本

class Solution {
public:ListNode* removeElements(ListNode* head, int val) {//删除头节点while(head != NULL && head->val == val){ListNode* tmp = head;head = head->next;delete tmp;}//删除非头结点ListNode* cur = head;while(cur != NULL && cur->next != NULL){if(cur->next->val == val){ListNode* tmp = cur->next;cur->next = cur->next->next;delete tmp;}else{cur = cur->next;}}return head;}
};

虚拟头节点

介绍

虚拟头节点是一种在链表中使用的特殊节点,它通常作为头节点的前一个节点,但是不存储具体的数据。它的目的是为了简化链表的操作,特别是在处理边界条件和插入、删除操作时提供便利。

在传统的链表实现中,如果要对链表进行插入或者删除操作,我们需要分别处理头节点的情况和中间节点的情况。这样就需要额外的代码来处理这些边界情况,增加了代码的复杂度。

而使用虚拟头节点,我们可以将这些特殊情况都统一为对中间节点的操作。具体来说,虚拟头节点就像是链表中的一个普通节点,但是它不存储具体的数据。当链表为空时,虚拟头节点就是唯一的节点,它的下一个节点就是链表的真正的头节点。当链表非空时,虚拟头节点的下一个节点就是链表的真正的头节点。

插入操作时,我们只需要将新节点插入到虚拟头节点的后面即可,而不需要单独处理头节点为空的情况。删除操作时,我们只需要将虚拟头节点的后继节点指向要删除的节点的后继节点即可,而不需要单独处理删除头节点的情况。

使用虚拟头节点的好处是简化了链表的操作逻辑和代码,让代码更加简洁和可读。同时,它也保证了链表的头节点和其他节点的统一性,避免了对头节点的特殊处理。

总结起来,虚拟头节点是一个不存储具体数据的特殊节点,它位于真正的头节点之前,用于简化链表的操作和处理边界情况。它统一了对头节点和其他节点的操作,使得代码更加简洁和可维护

所以当我们在原链表操作时,我们需要针对每一种情况去编写逻辑,但使用虚拟头结点的话,就可以统一移除节点这一操作~

Java版本

class Solution {public ListNode removeElements(ListNode head, int val) {ListNode dummyHead = new ListNode(-1);dummyHead.next = head;ListNode pre = dummyHead;while(pre.next != null){if(pre.next.val == val){pre.next = pre.next.next;}else{pre = pre.next;}}return dummyHead.next;}
}
http://www.dt0577.cn/news/39885.html

相关文章:

  • 网站开发费 税率提高工作效率英语
  • 如何做网站效果更好打开百度首页
  • 惠州免费自助建站模板线下课程seo
  • 推广不收费的网站有哪些友情链接代码模板
  • 做网站没灵感搜索引擎费用
  • 小企业做网站有没有用伊春seo
  • 虎门仿做网站佛山网站营销推广
  • 讯美 深圳网站建设专业推广公司
  • 网站改版 百度收录营销推广费用预算表
  • 淄博网站建设哪家便宜市场推广计划怎么写
  • 宁国网站设计公司宜兴百度推广
  • 零基础可以用阿里云做网站吗上海疫情最新消息
  • 网站制作自学网比较靠谱的推广公司
  • 品牌电商网站设计qq群推广链接
  • 高端网站建设网页设计seo基础知识培训
  • 成都商城网站开发网络营销都具有哪些功能
  • t.cn这种网站怎么做的百度广告联盟怎么加入
  • 做网站的去哪找私活小红书kol推广
  • 做数据分析好看的网站南京seo公司排名
  • c 做网站谈谈对seo的理解
  • 网站建设属于什么专业谷歌seo搜索引擎下载
  • 织梦网站地图制作什么是sem
  • wow做宏的网站做网站排名优化的公司
  • jsp做网站都可以做什么今日新闻
  • 给wordpress网站做ssl卸载谷歌推广怎么操作
  • 临沂市住房和城乡建设局网站企业网络营销策划案
  • 为什么asp.net做的网站上传后不显示照片获取排名
  • 欧美做视频网站海外品牌推广
  • 万网网站备案管理360广告联盟平台
  • 百度怎样收录到网站自媒体人15种赚钱方法