【问题描述】[中等]

给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。注意:此题对比原题有改动示例 1:输入: head = [4,5,1,9], val = 5
输出: [4,1,9]
解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.

【解答思路】

1. 双指针



时间复杂度:O(N^2) 空间复杂度:O(1)

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;}
}
2.单指针

时间复杂度:O(N) 空间复杂度:O(1)

 public ListNode deleteNode(ListNode head, int val) {if(head.val == val) return head.next;ListNode cur = head;while(cur != null){if(cur.next.val == val ){cur.next = cur.next.next;break;}cur=cur.next;}return head;}

【总结】

1.画图理解指针问题
2.遍历指针
 ListNode cur = head;while(cur != null)cur=cur.next;}
3.链表为空作判断 链表头尾特殊判断

参考链接:https://leetcode-cn.com/problems/shan-chu-lian-biao-de-jie-dian-lcof/solution/mian-shi-ti-18-shan-chu-lian-biao-de-jie-dian-sh-2/

[剑指offer][JAVA]面试题第[18]题[删除链表的节点]相关推荐

  1. [剑指offer][JAVA]面试题第[24]题[反转链表][递归][双指针][头插法]

    [问题描述][中等] 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点.示例:输入: 1->2->3->4->5->NULL 输出: 5->4 ...

  2. [剑指offer][JAVA]面试题第[31]题[栈的压入、弹出序列][栈]

    [问题描述][中等] 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4 ...

  3. [剑指offer][JAVA]面试题第[39]题[数组中出现次数超过一半的数字][HashMap][摩尔投票法]

    [问题描述][简单] 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字.你可以假设数组是非空的,并且给定的数组总是存在多数元素.示例 1:输入: [1, 2, 3, 2, 2, 2, 5, ...

  4. [剑指offer][JAVA]面试题第[32-3]题[从上到下打印二叉树 ][BFS]

    [问题描述][中等] 请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推. 例如: 给定二叉树: [3 ...

  5. [剑指offer][JAVA]面试题第[32-2]题[从上到下打印二叉树][BFS]

    [问题描述][简单] 从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行.例如: 给定二叉树: [3,9,20,null,null,15,7],3/ \9 20/ \15 7 ...

  6. [剑指offer][JAVA]面试题第[32-1]题[从上到下打印二叉树][BFS]

    [问题描述][中等] 从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印. 例如: 给定二叉树: [3,9,20,null,null,15,7],3/ \9 20/ \15 7 返回: ...

  7. [剑指offer][JAVA]面试题第[30]题[包含min函数的栈][双栈辅助栈][单栈]

    [问题描述][中等] 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min.push 及 pop 的时间复杂度都是 O(1).示例:MinStack min ...

  8. [剑指offer][JAVA]面试题第[16]题[数值的整数次方][位运算][二分法]

    [问题描述][中等] 实现函数double Power(double base, int exponent),求base的exponent次方.不得使用库函数,同时不需要考虑大数问题.示例 1:输入: ...

  9. [剑指offer][JAVA]面试题第[64]题[求1+2+…+n][逻辑运算符]

    [问题描述][中等] 求 1+2+...+n ,要求不能使用乘除法.for.while.if.else.switch.case等关键字及条件判断语句(A?B:C).输入: n = 3 输出: 6 [解 ...

最新文章

  1. it 脑裂_脑裂是什么?Zookeeper是如何解决的?
  2. 殊途同归还是渐行渐远?MIT神经科学教授James DiCarlo谈如何通过人类神经理解神经网络...
  3. 【数据结构与算法】之深入解析“分割数组的最大值”的求解思路与算法示例
  4. 2684亿销售额背后的阿里AI技术
  5. 原来记录系统日志那么简单【Java】【SpringBoot】【Mybatis Plus】【AspcetJ】
  6. linux下ip协议(V4)的实现(二)
  7. 多重环境下web.config配置管理解决方案
  8. mysql cmmand not found
  9. linux动态库路径生效,Linux下如何解决动态库的链接问题
  10. CentOS7.6重装系统步骤
  11. 店盈通:新品牌如何活得更好、活得更久
  12. 五大主流浏览器和内核
  13. mac升级系统mysql无法启动解决
  14. 企业管理不可忽视“工作日志”
  15. Tableau权限设置
  16. EASYOPS系列|谨慎!勿让持续交付变成bug自动化发布
  17. 【状语从句练习题】状语从句 + 过去完成时
  18. 前端token知识:token如何存储?token过期如何处理?
  19. 《数字图像处理(第三版)》 第二章 数字图像基础 笔记3(图像取样和量化)
  20. 用HBuilder开发的基于MUI和H5+的APP开发及上架经历

热门文章

  1. 图片异步上传,使用ajax上传图片
  2. C# base和this
  3. 最长回文Manacher
  4. IT基础架构规划方案二(计算机系统与机房规划规划)
  5. Android硬件抽象层(HAL)概要介绍和学习计划 1转
  6. 地质灾害防治条例释义的摘要
  7. Google Maps 地址转化成坐标
  8. 使用Cucumber+Rspec玩转BDD(2)——邮件激活
  9. java 图形绘制_Java Graphics 图形绘制
  10. greenplum vacuum清理删除数据命令