LintCode #452 删除链表中的元素
方法很笨拙,被链表给绕住了,抽空在整理一下。
/**
* Definition for ListNode
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) {
* val = x;
* next = null;
* }
* }
*/ public class Solution {
/**
* @param head: a ListNode
* @param val: An integer
* @return: a ListNode
*/
public ListNode removeElements(ListNode head, int val) {
// write your code here List<Integer> arr = getIndex(head,val);
return removeElements(head, val, arr);
} public static ListNode removeElements(ListNode head, int val, List<Integer> indexList) { ListNode result = head;
int i =0;
for (Integer index : indexList) {
result = deleteNode(result, index - i);
i++;
} return result; } public static ListNode deleteNode(ListNode head, int index){ //删除链表中的第一个元素
if(index==0){
head=head.next;
return head;
}
int i=1;
ListNode preNode=head;
ListNode curNode=preNode.next;
while(curNode!=null){
if(i==index){
preNode.next=curNode.next;
break;
}
preNode=curNode;
curNode=curNode.next;
i++;
}
return head;
} public static List<Integer> getIndex(ListNode head, int val){ List<Integer> arr = new ArrayList<Integer>();
if(head == null){
return arr;
}
int i = 0; if(head.val == val) {
arr.add(i);
}
ListNode curNode = head.next;
i = 1;
while (curNode != null) { if(curNode.val == val) {
arr.add(i);
}
curNode = curNode.next; i++;
} return arr;
}
}
C# 写法
public static LinkNode GetLinkNode(LinkNode head, int val)
{
LinkNode result = head;
while (result.Val == val)
{
result = result.Next;
} LinkNode preNode = result;
LinkNode curNode = preNode.Next; while (curNode != null)
{
if (curNode.Val == val)
{
preNode.Next = curNode.Next;
} preNode = curNode;
curNode = curNode.Next;
} return result;
}
LintCode #452 删除链表中的元素的更多相关文章
- LintCode之删除链表中的元素
题目描述 我的代码 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode n ...
- lintcode:删除链表中指定元素
题目 删除链表中等于给定值val的所有节点. 样例 给出链表 1->2->3->3->4->5->3, 和 val = 3, 你需要返回删除3之后的链表:1-> ...
- 【LintCode】删除链表中的元素
问题分析: 声明当前指针和上一个指针即可. 问题求解: public class Solution { public ListNode removeElements(ListNode head, in ...
- 203 Remove Linked List Elements 删除链表中的元素
删除链表中等于给定值 val 的所有元素.示例给定: 1 --> 2 --> 6 --> 3 --> 4 --> 5 --> 6, val = 6返回: 1 --& ...
- [LintCode]删除链表中的元素
问题分析: 声明当前指针和上一个指针即可. 问题求解: public class Solution { public ListNode removeElements(ListNode head, in ...
- LeetCode Delete Node in a Linked List (删除链表中的元素)
题意:给一个将要删除的位置的指针,要删除掉该元素.被删元素不会是链尾(不可能删得掉). 思路:将要找到前面的指针是不可能了,但是可以将后面的元素往前移1位,再删除最后一个元素. /** * Defin ...
- 删除链表中的元素 · Remove Linked List Elements
[抄题]: Remove all elements from a linked list of integers that have value val. ExampleGiven: 1 --> ...
- SDUT OJ 数据结构实验之链表七:单链表中重复元素的删除
数据结构实验之链表七:单链表中重复元素的删除 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem ...
- SDUT-2122_数据结构实验之链表七:单链表中重复元素的删除
数据结构实验之链表七:单链表中重复元素的删除 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 按照数据输入的相反顺序(逆 ...
随机推荐
- linux Ctrl+z和Ctrl+c的区别
1.Ctrl+z 挂起进程,并不会结束,执行fg命令可以重新启动这个被挂起的命令. 2.Ctrl+c 终止进程
- 【Android】Sensor框架Framework层解读
Sensor整体架构 整体架构说明 黄色部分表示硬件,它要挂在I2C总线上 红色部分表示驱动,驱动注册到Kernel的Input Subsystem上,然后通过Event Device把Sensor数 ...
- JVM垃圾回收--年轻代、年老点和持久代
关键字约定 Young generation –>新生代 Tenured / Old Generation –>老年代 Perm Area –>永久代 年轻代: 所有新生成的对象首先 ...
- 国内Docker下载镜像提速方法之一
众所周知,Docker Hub并没有在国内部署服务器或者使用国内的CDN服务,因此在国内特殊的网络环境下,镜像下载十分耗时.为了克服跨洋网络延迟,能够快速高效地下载Docker镜像,我采用了DaoCl ...
- Spring事务管理要点总结
# Spring事务管理要点总结 ### 要点---- 事务是企业级应用中必不可缺少的技术,用来确保数据的完整性和一致性.- Spring事务管理并不实现事务管理的实现,而是借助Hibernate\J ...
- laravel iis搭建
1.urlrewrite https://www.iis.net/downloads/microsoft/url-rewrite 2.安装phpmanager 3.目录定位到public 赋给iuse ...
- java基础篇---Servlet监听器
在写此篇前,看了一下园友写的,感觉其基础知识归纳的十分全面,我在此就不累赘的写了,链接地址(http://www.cnblogs.com/sherryueda/p/4273169.html), 我就写 ...
- RedHat 将应用程序添加到 Gnome 菜单中
. . . . . 在RedHat下面安装了Eclipse,是解压缩就能运行的,没有经过脚本安装所以无法自动在菜单中生成链接,但是可以通过手动的方式,步骤如下. 首先在/usr/share/appli ...
- 用B表更新A表
UPDATE dbo.POR_LOT SET POR_LOT.SHIPPED_FLAG =B.SHIPPED_FLAGFROM POR_LOT A INNER JOIN ( SELECT T5.LOT ...
- THEOS的第一个TWeak的成功创建
THEOS的第一个TWeak的成功创建html, body {overflow-x: initial !important;}.CodeMirror { height: auto; } .CodeMi ...