链表问题17—— 一种怪异的节点删除方式
题目
给定一个链表中的节点node,但不给定整个链表的头节点。如何在链表中删除node?其中链表节点值的类型为int型
要求:时间复杂度O(1)
思路
思路比较简单,将当前给定节点node的值修改为下一个节点的value,然后删除下一个节点。举例如下
链表1->2->3->null,要删除节点2,但是现在只知道节点2并不知道头节点,并且只有next指针,此时就是将节点2的值改为节点3的值,然后删除节点3即可
问题:
- 无法删除最后一个节点。因为最后一个节点指向的是null,可能会有读者问:我们如果将当前最后一个节点赋为null是不是可行的?答案是不可行的,因为null是一个特定的区域,如果想让倒数第二个节点指向null,则必须找到倒数第二个节点。
- 本质有问题,因为并不是真正删除,只是该值并删除下一个节点,在实际复杂的节点值的情况下,存在很大问题。
源码
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—— 一种怪异的节点删除方式相关推荐
- leetcode 237. 删除链表中的节点(左神算法:一种怪异的节点删除方式、此方法存在的问题分析)
题目 题解 一种怪异的节点删除方式 本题的思路很简单,举例就能说明具体的做法. 例如,链表1->2->3->null,只知道要删除节点2,而不知道头节点.那么只需把节点2 的值变成节 ...
- 一种怪异的节点删除方式
题目 链表的节点类型是int型,给定一个链表中的节点node,但不给定整个链表的头节点.如何在链表中删除node?请实现这个函数,并分析这么做会出现哪些问题. 要求:时间复杂度O(1). 基本思路 实 ...
- 单链表销毁的两种方式
单链表销毁的两种方式 在创建和新增申请单链表节点时,需要通过malloc函数手动申请内存空间.如果不对相应内存进行手动释放则会约积累越多,存在内存泄漏风险. 递归销毁 通过递归找到链表最后一个节点,依 ...
- 链表反转的四种方法(栈、头插法、三指针法、递归法)
单链表反转或转置的四种方法 链表的反转实质上是反转链表上的内容: 若链表存储的数据是:1->2->3->4->5; 那么反转后则是:5->4->3->2-&g ...
- zynq学习03 zynq中三种实现GPIO的方式
http://m.blog.csdn.net/article/details?id=52123465 http://blog.chinaaet.com/songhuangong/p/43084 本文介 ...
- Python中的urllib,urllib三种不同的请求方式
1.urllib获取服务器的资源 自定义爬虫的重要组件 获取百度首页的资源: #3.x的标准写法 import urllib.request import urllib.parse#百度的首页 fro ...
- Java数组去重的多种方法,[Java教程]JavaScript常见的五种数组去重的方式
[Java教程]JavaScript常见的五种数组去重的方式 0 2016-12-14 15:00:17 ▓▓▓▓▓▓ 大致介绍 JavaScript的数组去重问题在许多面试中都会遇到,现在做个总结 ...
- 【Elasticsearch】十九种Elasticsearch字符串搜索方式
1.概述 十九种Elasticsearch字符串搜索方式 刚开始接触Elasticsearch的时候被Elasticsearch的搜索功能搞得晕头转向,每次想在Kibana里面查询某个字段的时候,查出 ...
- Go语言6种字符串拼接的方式
Go语言6种字符串拼接的方式 前言 string类型 字符串拼接的6种方式及原理 原生拼接方式"+" 字符串格式化函数fmt.Sprintf Strings.builder byt ...
最新文章
- AI一分钟 | 传许家印已投资贾跃亭FF;腾讯将发布可接收微信的智能音箱;阿里确认研发自动驾驶技术...
- 菜鸟学数据库(四)——超键、候选键、主键、外键
- Scrapy 爬虫去重效率优化之 Bloom Filter的算法的对接
- 关于Cocoa框架的争论
- jdbc数据源连接oracle,请教JDBC怎么连接ORACLE数据库
- L1-031. 到底是不是太胖了-PAT团体程序设计天梯赛GPLT
- java面试题学生表成绩表老师表_SQL经典学生老师成绩表面试题
- docker 监控之 cadvisor
- postgresql查看表的创建者和表的权限
- 来字节一月了,四个字:翻天覆地
- oracle可以只装客户端吗,我想在linux下只装oracle客户端行吗?怎么装?
- 计算机显卡驱动全部卸载,怎么卸载显卡驱动
- 手工焊接SSOP贴片元件步骤总结
- 函数式编程(lambda表达式)
- 【SONY PS2模拟器】[PCSX2 V0.93 R7完美教程]+最新版模拟器
- 双河市谷歌高清卫星地图下载
- MCtalk对话尚德机构:与教研和大数据结合的AI,才是真功夫
- Nginx 代理缓存
- commons-codec使用简介
- 如何解决win10应用商店打不开——错误码0x80131500