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

可以建设网站外贸建站服务器怎么选

可以建设网站,外贸建站服务器怎么选,建站免费平台,分类模板wordpress题目链接:https://leetcode.cn/problems/shan-chu-lian-biao-de-jie-dian-lcof/ 1. 题目介绍(18. 删除链表的节点) 给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。 返回删除后的链表的头节点。 注意&…

题目链接:https://leetcode.cn/problems/shan-chu-lian-biao-de-jie-dian-lcof/

1. 题目介绍(18. 删除链表的节点)

给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。
返回删除后的链表的头节点。

注意:此题对比原题有改动

【测试用例】:
示例 1:

输入: head = [4,5,1,9], val = 5
输出: [4,1,9]
解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.

示例 2:

输入: head = [4,5,1,9], val = 1
输出: [4,5,9]
解释: 给定你链表中值为 1 的第三个节点,那么在调用了你的函数之后,该链表应变为 4 -> 5 -> 9.

【条件约束】:

说明:

  • 题目保证链表中节点的值互不相同
  • 若使用 C 或 C++ 语言,你不需要 free 或 delete 被删除的节点

【相似题目】:

  • 【LeetCode】No.83. 删除排序链表中的重复元素 – Java Version
  • 【LeetCode】No.237. 删除链表中的节点 – Java Version

2. 题解

2.1 常规方法 – O(n)

时间复杂度O(n),空间复杂度O(1)

条件讨论:

  • ①. 普通情况,要删除的节点下一节点不为null,这个时候我们可以用下一节点的内容覆盖到当前节点来实现节点删除;
  • ②. 尾节点,当删除的节点是尾节点时,由于尾节点的下一节点指向的是null,所以我们没办法使用像普通情况下的节点那样,使用下一节点来覆盖掉当前节点,因此需要特殊处理。处理方式相当于我们提前进行了判断,让尾节点的前一节点的next指向null;
  • ③. 仅存在头节点,这种情况属于当前节点既没有前一节点,也没有后一节点,需要单独判断,直接让头节点指向null即可

ChatGPT代码分析如下:(不得不说,确实是科技改变生活,懒人必备了)
在这里插入图片描述

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode(int x) { val = x; }* }*/
class Solution {public ListNode deleteNode(ListNode head, int val) {// 判空if (head == null) return null;// 定义变量cur,用来指向当前节点ListNode cur = head;// 删除头节点的情况:即链表中只存在头节点,且删除值与头节点相同if (head.next == null && head.val == val) head = null;while (cur.next != null){// 普通情况,采用下一节点覆盖当前节点的方法// 复制当前节点的下一个节点到当前节点,并删除下一个节点ListNode pNext = cur.next;if (cur.val == val){cur.val = pNext.val;cur.next = pNext.next;pNext = null;break;}cur = cur.next;// 删除尾节点if (cur.next.next == null && cur.next.val == val) {cur.next = null;break;}}return head;}
}

在这里插入图片描述

2.2 双指针 – O(n)

时间复杂度O(n),空间复杂度O(1)
在这里插入图片描述

思路:

  • 设节点 cur 的前驱节点为 pre ,后继节点为 cur.next ;则执行 pre.next = cur.next ,即可实现删除 cur 节点;
  • 也属于常规做法,即自己定义前驱节点,然后通过将前驱节点的next指向当前节点的next,从而实现对节点的删除。
class Solution {public ListNode deleteNode(ListNode head, int val) {if(head.val == val) return head.next;ListNode pre = head, cur = head.next;while(cur != null && cur.val != val) {pre = cur;cur = cur.next;}if(cur != null) pre.next = cur.next;return head;}
}

在这里插入图片描述

3. 参考资料

[1] 面试题18. 删除链表的节点(双指针,清晰图解)-- 双指针解法来源

http://www.yayakq.cn/news/509176/

相关文章:

  • 企业网站模板下载报价多少外贸建站模板价格
  • 最好的手表网站asp.net mvc 网站开发之美
  • 爱站网为什么不能用了wordpress 主题安装 时间
  • 专业的集团网站设计公司中国空间站24小时直播入口
  • 毕业设计团购网站建设广东省做网站推广公司
  • 门户网站流量梵克雅宝五花手链
  • wordpress多站点site id为什么不能安装wordpress
  • 加强网站信息内容建设管理wordpress 相册 免费模板
  • 做门窗安装用哪些网站找生意昆明市城乡建设局网站
  • 网站开发技术创业计划高端网站建设公司增长
  • 博山网站建设yx718旅游网站建设备案
  • 代做广联达 的网站庆元县住房和城乡建设局网站
  • 昆明如何做百度的网站产品营销策划方案
  • 做瞹视频网站二手车网站html模板
  • .net做中英文网站公司简介ppt内容
  • 厦门建网站多少钱汤唯梁朝伟做视频网站
  • 网站开发人员的考核做译员的网站
  • 购物网站难做网站建设思路
  • 做内贸的什么网站效果好做微商选择的哪个平台微平台网站
  • 网站开发工具特点总结网站整体设计风格
  • 唐山彩钢中企动力提供网站建设做特效的网站
  • 个人免费推广网站网站的标签怎么修改
  • 温州专业全网推广建站公司企业网站app制作价格
  • 天津网站设计公司价格电商平台代运营服务
  • 网站建设主机配置电器网站模板
  • 做模板网站的公司排名优化公司哪里有
  • 做yy头像的网站做网站运营跟专业有关吗
  • 个人做跨境电商网站世界总人口实时数据
  • 百度云自助建站太原智能化营销网站制作公司
  • 做网上夫妻去哪个网站网站服务器修改登录密码