题目

给定一个链表中的节点node,但不给定整个链表的头节点。如何在链表中删除node?其中链表节点值的类型为int型

要求:时间复杂度O(1)


思路

思路比较简单,将当前给定节点node的值修改为下一个节点的value,然后删除下一个节点。举例如下

链表1->2->3->null,要删除节点2,但是现在只知道节点2并不知道头节点,并且只有next指针,此时就是将节点2的值改为节点3的值,然后删除节点3即可

问题:

  1. 无法删除最后一个节点。因为最后一个节点指向的是null,可能会有读者问:我们如果将当前最后一个节点赋为null是不是可行的?答案是不可行的,因为null是一个特定的区域,如果想让倒数第二个节点指向null,则必须找到倒数第二个节点。
  2. 本质有问题,因为并不是真正删除,只是该值并删除下一个节点,在实际复杂的节点值的情况下,存在很大问题。

源码

public static class Node{public int value;public Node next;public Node(int data){this.value=data;}
}public void removeNodeWeird(Node node){if(node==null){return;}Node next=node.next;if(next=null){throw new RuntimeException("can not remove last node.");}node.value=next.value;node.next=next.next;
}

链表问题17—— 一种怪异的节点删除方式相关推荐

  1. leetcode 237. 删除链表中的节点(左神算法:一种怪异的节点删除方式、此方法存在的问题分析)

    题目 题解 一种怪异的节点删除方式 本题的思路很简单,举例就能说明具体的做法. 例如,链表1->2->3->null,只知道要删除节点2,而不知道头节点.那么只需把节点2 的值变成节 ...

  2. 一种怪异的节点删除方式

    题目 链表的节点类型是int型,给定一个链表中的节点node,但不给定整个链表的头节点.如何在链表中删除node?请实现这个函数,并分析这么做会出现哪些问题. 要求:时间复杂度O(1). 基本思路 实 ...

  3. 单链表销毁的两种方式

    单链表销毁的两种方式 在创建和新增申请单链表节点时,需要通过malloc函数手动申请内存空间.如果不对相应内存进行手动释放则会约积累越多,存在内存泄漏风险. 递归销毁 通过递归找到链表最后一个节点,依 ...

  4. 链表反转的四种方法(栈、头插法、三指针法、递归法)

    单链表反转或转置的四种方法 链表的反转实质上是反转链表上的内容: 若链表存储的数据是:1->2->3->4->5; 那么反转后则是:5->4->3->2-&g ...

  5. zynq学习03 zynq中三种实现GPIO的方式

    http://m.blog.csdn.net/article/details?id=52123465 http://blog.chinaaet.com/songhuangong/p/43084 本文介 ...

  6. Python中的urllib,urllib三种不同的请求方式

    1.urllib获取服务器的资源 自定义爬虫的重要组件 获取百度首页的资源: #3.x的标准写法 import urllib.request import urllib.parse#百度的首页 fro ...

  7. Java数组去重的多种方法,[Java教程]JavaScript常见的五种数组去重的方式

    [Java教程]JavaScript常见的五种数组去重的方式 0 2016-12-14 15:00:17 ▓▓▓▓▓▓ 大致介绍 JavaScript的数组去重问题在许多面试中都会遇到,现在做个总结 ...

  8. 【Elasticsearch】十九种Elasticsearch字符串搜索方式

    1.概述 十九种Elasticsearch字符串搜索方式 刚开始接触Elasticsearch的时候被Elasticsearch的搜索功能搞得晕头转向,每次想在Kibana里面查询某个字段的时候,查出 ...

  9. Go语言6种字符串拼接的方式

    Go语言6种字符串拼接的方式 前言 string类型 字符串拼接的6种方式及原理 原生拼接方式"+" 字符串格式化函数fmt.Sprintf Strings.builder byt ...

最新文章

  1. AI一分钟 | 传许家印已投资贾跃亭FF;腾讯将发布可接收微信的智能音箱;阿里确认研发自动驾驶技术...
  2. 菜鸟学数据库(四)——超键、候选键、主键、外键
  3. Scrapy 爬虫去重效率优化之 Bloom Filter的算法的对接
  4. 关于Cocoa框架的争论
  5. jdbc数据源连接oracle,请教JDBC怎么连接ORACLE数据库
  6. L1-031. 到底是不是太胖了-PAT团体程序设计天梯赛GPLT
  7. java面试题学生表成绩表老师表_SQL经典学生老师成绩表面试题
  8. docker 监控之 cadvisor
  9. postgresql查看表的创建者和表的权限
  10. 来字节一月了,四个字:翻天覆地
  11. oracle可以只装客户端吗,我想在linux下只装oracle客户端行吗?怎么装?
  12. 计算机显卡驱动全部卸载,怎么卸载显卡驱动
  13. 手工焊接SSOP贴片元件步骤总结
  14. 函数式编程(lambda表达式)
  15. 【SONY PS2模拟器】[PCSX2 V0.93 R7完美教程]+最新版模拟器
  16. 双河市谷歌高清卫星地图下载
  17. MCtalk对话尚德机构:与教研和大数据结合的AI,才是真功夫
  18. Nginx 代理缓存
  19. commons-codec使用简介
  20. 如何解决win10应用商店打不开——错误码0x80131500

热门文章

  1. Java线程池面试必备:核心参数、工作流、监控、调优手段
  2. 双指针问题最简单的教程(1)
  3. Java:new一个对象的过程中发生了什么?
  4. 图解Transformer(完整版)!
  5. 清华大学唐杰教授:人工智能的十年总结
  6. 剑指offer_第1题_二维数组中的查找
  7. 【pandas学习笔记】Series
  8. 剑桥大学:机器学习模型部署都有哪些坑?
  9. PyTorch官方教程大更新:增加标签索引,更加新手友好
  10. 新年总结:2018年,是我妈最快乐的一年