Leetcode -Delete Node in a Linked List !
2016-02-15 21:07
781 查看
多坚持了一天。多亏今天还有一道easy的题。。
一看这题,给人第一个感觉估计就是没头绪,这单向链表,你不给我前面的节点,怎么能删除这个节点呢。
其实这都是这个题的名字作怪:
但是仔细思考后你会发现,这个所谓的删除节点,其实就是
这么一看,简直日了狗,这不就是一个循环赋值吗。
剩下的就是细心,把循环的边界判断好,特殊情况考虑好。
一、分析
这题就是说:删除一个单向链表的某个节点,但是只给你要删的这个节点,没有头结点。
一看这题,给人第一个感觉估计就是没头绪,这单向链表,你不给我前面的节点,怎么能删除这个节点呢。
其实这都是这个题的名字作怪:
Delete Node in a Linked List,它一上来就告诉你,我是删了这个节点了,你肯定会想删节点我要找前面的节点,然后重新指向后面的节点,做一个桥。
但是仔细思考后你会发现,这个所谓的删除节点,其实就是
把这个节点之后的每一个节点(除了最后一个)的值都变成后一个节点的值,然后删除尾节点。
这么一看,简直日了狗,这不就是一个循环赋值吗。
剩下的就是细心,把循环的边界判断好,特殊情况考虑好。
二、代码
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ public class Solution { public void deleteNode(ListNode node) { if(null == node) return; ListNode p = node; while(null != p.next.next){ p.val = p.next.val; p = p.next; } p.val = p.next.val; p.next = null; } }
相关文章推荐
- 用nodejs库cheerio抓取网页内容与图片
- 前端工程师使用node.js打造日记社区教程之四
- node.js的一个简单框架
- 使用基于Node.js的构建工具Grunt来发布ASP.NET MVC项目
- 安装并试用nodejs
- Node.js简单使用
- Light OJ 1257 Farthest Nodes in a Tree (II) (树形DP)
- NodeJS获取命令行后面的参数
- node
- nodejs学习笔记三——nodejs使用富文本插件ueditor
- nodejs学习笔记三——nodejs使用富文本插件ueditor
- WebStorm+Node.js开发环境的配置
- Nodejs爬虫进阶教程之异步并发控制
- Nodejs爬虫进阶教程之异步并发控制
- 使用基于Node.js的构建工具Grunt来发布ASP.NET MVC项目
- 24. Swap Nodes in Pairs LeetCode
- 116. Populating Next Right Pointers in Each Node LeetCode
- hadoop 源码中NameNode与DataNode主要的类目录
- nodepad++ 插件
- Namenode的高可用性总结