class ListNode{
int val ;
ListNode next;
public ListNode(int x) {
val = x;
}
public ListNode(int[] arr) {
if(arr == null || arr.length == 0) {
throw new IllegalArgumentException("ARR CAN NOT BE EMPTY");
} val = arr[0];
//这个this是指实现这个内部类的对象
ListNode cur = this;
for(int i = 1 ; i < arr.length ; i ++) {
cur.next = new ListNode(arr[i]);
cur = cur.next;
}
}
public String toString() {
StringBuilder res = new StringBuilder();
ListNode cur = this;
while(cur != null) {
res.append(cur.val + "->");
cur = cur.next;
}
res.append("NULL");
return res.toString();
} }
public class Main {
public static void main(String[] args) {
int[] nums = {1,2,4,3,6,4,2};
ListNode head = new ListNode(nums);
System.out.println(head);
ListNode node = removeElement(head, 2);
System.out.println(node);
}
//不设头节点
public static ListNode removeElement(ListNode head, int val) {
//删除开始部分的节点
while(head != null && head.val == val) {
head = head.next;
}
if(head == null) {
return head;
}
//删除中间部分的节点
ListNode prev = head;
while(prev.next != null) {
if(prev.next.val == val) {
prev.next = prev.next.next;
}else {
prev = prev.next;
}
}
return head;
}
}

java——删除链表中等于给定值的所有元素的更多相关文章

  1. 删除链表中等于给定值val的所有节点。

    样例 给出链表 1->2->3->3->4->5->3, 和 val = 3, 你需要返回删除3之后的链表:1->2->4->5. /** * D ...

  2. 删除数组中等于某个key的所有元素

    题目描述: 给定一个数组和一个值,在原地删除与值相同的数字,返回新数组的长度. 这道题目做暴力的想法就是,用一个指针从头到尾遍历,删除哪个元素就把后面的元素统一向前移动一个位置.但是这样的时间复杂度很 ...

  3. 删除链表中的倒数第n个元素

    示例: 输入链表:1->2->3->4->5 , 2 输出:1->2->3->5 Python解决方案1: # Definition for singly-l ...

  4. LeetCode:删除链表中的节点【203】

    LeetCode:删除链表中的节点[203] 题目描述 删除链表中等于给定值 val 的所有节点. 示例: 输入: 1->2->6->3->4->5->6, val ...

  5. 203 Remove Linked List Elements 删除链表中的元素

    删除链表中等于给定值 val 的所有元素.示例给定: 1 --> 2 --> 6 --> 3 --> 4 --> 5 --> 6, val = 6返回: 1 --& ...

  6. lintcode:删除链表中指定元素

    题目 删除链表中等于给定值val的所有节点. 样例 给出链表 1->2->3->3->4->5->3, 和 val = 3, 你需要返回删除3之后的链表:1-> ...

  7. 【leetcode 简单】 第五十七题 删除链表中的节点

    删除链表中等于给定值 val 的所有节点. 示例: 输入: 1->2->6->3->4->5->6, val = 6 输出: 1->2->3->4 ...

  8. 【Java】 剑指offer(18) 删除链表中重复的结点

    本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集   题目 在一个排序的链表中,如何删除重复的结点?例如,在图3.4(a)中重 ...

  9. 链表:删除链表中重复的结点(java实现)

    题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针. 例如,链表1->2->3->3->4->4->5 处理后 ...

随机推荐

  1. Tensorflow手写数字识别训练(梯度下降法)

    # coding: utf-8 import tensorflow as tffrom tensorflow.examples.tutorials.mnist import input_data #p ...

  2. R: 绘图 pie & hist

    问题: 绘制 pie .hist 图 解决方案: 饼图函数 pie( ) pie(x, labels = names(x), edges = 200, radius = 0.8, clockwise ...

  3. Luogu 3172 [CQOI2015]选数

    考虑枚举$k$的倍数$dk$,容易知道$\left \lceil \frac{L}{K} \right \rceil\leq d\leq \left \lfloor \frac{H}{k} \righ ...

  4. [译]Javascript中的递归函数

    本文翻译youtube上的up主kudvenkat的javascript tutorial播放单 源地址在此: https://www.youtube.com/watch?v=PMsVM7rjupU& ...

  5. 在GridView控件FooterTemplate内添加记录 Ver2

    中午有发表一篇博文<在GridView控件FooterTemplate内添加记录> http://www.cnblogs.com/insus/p/3269908.html 添加铵钮是放在F ...

  6. 获取GridView控件总列数

    GridView控件,它不管是放在MasterPage母版页内,还是放在Page单独网页内,它不管是自动显示列AutoGenerateColumns="true",还是手动定列Au ...

  7. Python3中实现简单的购物车程序

    product_list = [ ('iphone',5800), ('imac',15800), ('watch',9800), ('cloth',550), ('coffe latee',35), ...

  8. 数据结构5: 链表(单链表)的基本操作及C语言实现

    逻辑结构上一个挨一个的数据,在实际存储时,并没有像顺序表那样也相互紧挨着.恰恰相反,数据随机分布在内存中的各个位置,这种存储结构称为线性表的链式存储. 由于分散存储,为了能够体现出数据元素之间的逻辑关 ...

  9. HDU6298 Maximum Multiple (多校第一场1001)

    Maximum Multiple Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  10. 02 Django web开发-html简介

    软件开发和网络 HTML是用于创建网页的标准标记语言 -HTML指的是超文本标记语言 -HTML不是一种编程语言,二十一种标记语言 -是用来描述网页的一种语言 -HTML描述使用标记的网页的结构 -是 ...