java——删除链表中等于给定值的所有元素
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——删除链表中等于给定值的所有元素的更多相关文章
- 删除链表中等于给定值val的所有节点。
样例 给出链表 1->2->3->3->4->5->3, 和 val = 3, 你需要返回删除3之后的链表:1->2->4->5. /** * D ...
- 删除数组中等于某个key的所有元素
题目描述: 给定一个数组和一个值,在原地删除与值相同的数字,返回新数组的长度. 这道题目做暴力的想法就是,用一个指针从头到尾遍历,删除哪个元素就把后面的元素统一向前移动一个位置.但是这样的时间复杂度很 ...
- 删除链表中的倒数第n个元素
示例: 输入链表:1->2->3->4->5 , 2 输出:1->2->3->5 Python解决方案1: # Definition for singly-l ...
- LeetCode:删除链表中的节点【203】
LeetCode:删除链表中的节点[203] 题目描述 删除链表中等于给定值 val 的所有节点. 示例: 输入: 1->2->6->3->4->5->6, val ...
- 203 Remove Linked List Elements 删除链表中的元素
删除链表中等于给定值 val 的所有元素.示例给定: 1 --> 2 --> 6 --> 3 --> 4 --> 5 --> 6, val = 6返回: 1 --& ...
- lintcode:删除链表中指定元素
题目 删除链表中等于给定值val的所有节点. 样例 给出链表 1->2->3->3->4->5->3, 和 val = 3, 你需要返回删除3之后的链表:1-> ...
- 【leetcode 简单】 第五十七题 删除链表中的节点
删除链表中等于给定值 val 的所有节点. 示例: 输入: 1->2->6->3->4->5->6, val = 6 输出: 1->2->3->4 ...
- 【Java】 剑指offer(18) 删除链表中重复的结点
本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集 题目 在一个排序的链表中,如何删除重复的结点?例如,在图3.4(a)中重 ...
- 链表:删除链表中重复的结点(java实现)
题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针. 例如,链表1->2->3->3->4->4->5 处理后 ...
随机推荐
- 利用General框架进行三层架构开发
三层架构是企业信息管理系统中一种比较流行的架构方式,如大家所知,三层架构将信息系统分为数据访问层(DAL).业务逻辑层(BLL).界面表示层(UI)三部分,三层架构的好处是根据系统中代码所处的层次将系 ...
- 数字图像处理实验(3):PROJECT 02-03, Zooming and Shrinking Images by Pixel Replication 标签: 图像处理matlab 20
实验要求: Zooming and Shrinking Images by Pixel Replication Objective To manipulate a technique of zoomi ...
- 面试经常问的一个问题:final、finalize、finally
http://m.blog.csdn.net/u010980446/article/details/51493658
- Paint类的介绍
* Paint即画笔,在绘图过程中起到了极其重要的作用,画笔主要保存了颜色, * 样式等绘制信息,指定了如何绘制文本和图形,画笔对象有很多设置方法, * 大体上可以分为两类,一类与图形绘制相关,一类与 ...
- Chrome Plugin Recommendation
1.AdBlock 拦截广告神器 2.IPBlade 变更IP地址,使你自由 3.JSON-handle 让接口返回的JSON数据更好看 4.Proxy SwitchyOmega 变更浏览器代理 5. ...
- python 趣味强制请吃饭
# -*- coding: utf-8 -*- import easygui who = easygui.buttonbox("你想请谁吃饭 ?", "luckly qu ...
- libsvm使用简介
libsvm是support vector machine的一种开源实现,采用了smo算法.源代码编写有独到之处,值得一睹. 常用结构 svm_node结构 定义了构成输入特征向量的元素,index为 ...
- kolla-build镜像时,问题汇总
记录下kolla-build镜像时,遇到的一些问题,既为了方便自己以后问题的查找,也为了帮助别人避免踩这些坑.遇到的问题会持续更新在博客里面. 问题1:使用的kolla 版本是ocata版本,本地已经 ...
- bsdasm
bsdasm 来源 http://www.int80h.org/bsdasm/ Preface by G. Adam StanislavWhiz Kid Technomagic Assembly la ...
- sap abap 流水号设置
1.TCODE:SNRO,进入如图所示界面 2. 短文本和长文本用来说明这个编号范围对象,输入任意描述即可. 子对象数据元素我们这里不填.这里需要说明一下,所谓子对象,多数指一个组织结构,比如公司代码 ...