算法--链表指定值清除

转载请标明出处http://www.cnblogs.com/haozhengfei/p/5155a3f1ce0612e35ec202156921836f.html


链表指定值清除

第8节 链表指定值清除练习题

现在有一个单链表。链表中每个节点保存一个整数,再给定一个值val,把所有等于val的节点删掉。

给定一个单链表的头结点head,同时给定一个值val,请返回清除后的链表的头结点,保证链表中有不等于该值的其它值。请保证其他元素的相对顺序。

测试样例:

{1,2,3,4,3,2,1},2
{1,3,4,3,1}

Java (javac 1.7)

代码自动补全

1

import java.util.*;

2


3

/*

4

public class ListNode {

5

    int val;

6

    ListNode next = null;

7


8

    ListNode(int val) {

9

        this.val = val;

10

    }

11

}*/

12

public class ClearValue {

13

    public ListNode clear(ListNode head, int val) {

14

        while (head != null) {

15

            if (head.val != val) {

16

                break;

17

            }

18

            head = head.next;

19

        }

20

        ListNode pre = head;

21

        ListNode cur = head;

22

        while (cur != null) {

23

            if (cur.val == val) {

24

                pre.next = cur.next;

25

            } else {

26

                pre = cur;

27

            }

28

            cur = cur.next;

29

        }

30

        return head;

31

    }

32

}

您的代码已保存
答案正确:恭喜!您提交的程序通过了所有的测试用例

运行

时间: 2024-10-25 03:21:36

算法--链表指定值清除的相关文章

js删除数组元素中的指定值

js删除数组元素中的指定值:所谓删除数组元素中指定的值,就是删除具有指定的数组项,下面就通过实例代码代码介绍一下如何实现此功能.代码如下: var theArray=["蚂蚁部落",2,"青岛市南区","antzone","蚂蚁部落"]; for(var i=0;i<theArray.length;i++){ if(theArray[i]=="蚂蚁部落"){ theArray.splice(i,1);

链表算法-链表前面插入节点

链表算法-链表前面插入节点

jquery简单原则器(匹配索引为指定值的元素)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>简单选择器</title> &

数据结构与算法-链表的基本操作---ShinPans

//链表操作:建立.插入.删除.查找.倒置.删除等基本操作 #include<stdio.h> #include<stdlib.h> typedef  struct LNode {       int data;       structLNode *next; }LNode,*Llist; LNode *creat_head();//创建一个空表 void creat_list(LNode *,int);//创建一个长度为n的线性链表 void insert_list(LNode

jquery简单原则器(匹配索引大于指定值的元素)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>简单选择器</title> &

找出数组中两数之和为指定值的所有整数对

一,问题描述 给定一个整型数组(数组中的元素可重复),以及一个指定的值.打印出数组中两数之和为指定值的 所有整数对 二,算法分析 一共有两种方法来求解.方法一借助排序,方法二采用HashSet 方法一: 先将整型数组排序,排序之后定义两个指针left和right.left指向已排序数组中的第一个元素,right指向已排序数组中的最后一个元素 将 arr[left]+arr[right]与 给定的元素比较,若前者大,right--:若前者小,left++:若相等,则找到了一对整数之和为指定值的元素

sql - 查询所有表中包含指定值

可以直接创建sql语句: CREATE TABLE qResults (tName nvarchar(370), cname nvarchar(3630),[count] int) declare @tname nvarchar(200) declare @cname nvarchar(200) declare @countOut nvarchar(200) declare @sql nvarchar(max) declare c_search cursor for select t.name,

js从数组中删除指定值的元素,而不是指定位置

比如数组{1,2,3,4,5},我要删除其中的元素3,但是这个3的位置我是不知道的, 只知道要删除值为3的这一个元素. 如果没有使用第三方框架,有类似的扩展功能可以根据指定值,返回元素的下标的话,只能自己先查找,然后再删除. <script type="text/javascript"> Array.prototype.indexOf = function(val) { for (var i = 0; i < this.length; i++) { if (this[

java 从数据删除指定值

public class ArrayRemoveValue { public static void main(String[] args) { Integer[] _IntArray = new Integer[]{1,2,3,4,5,6,7,9,0}; /** * 由于Arrays.asList(_IntArray)返回来的是一个固定长度的list 如果直接操作会抛出java.lang.UnsupportedOperationException * 所有需重新构造一个arraylist,供后