单链表删除给定值

简介: 单链表删除给定值
package com.harrison.class02;
public class Code03_DeleteGivenValue {
  public static class Node{
    public int value;
    public Node next;
    public Node(int v) {
      this.value=v;
    }
  }
  public static Node deleteGivenValue(Node head,int num) {
    while(head!=null) {
      if(head.value!=num) {
        break;
      }
      head=head.next;
    }
    //头结点来到第一个不需要删除的位置
    Node pre=head;
    Node cur=head;
    while(cur!=null) {
      if(cur.value==num) {
        pre.next=cur.next;
      }else {
        pre=cur;
      }
      cur=cur.next;
    }
    return head;
  }
  public static Node generateRandomLinkedList(int len, int value) {
    int size = (int) (Math.random() * (len + 1));
    if (size == 0) {
      return null;
    }
    size--;
    Node head = new Node((int) (Math.random() * (value + 1)));
    Node pre = head;
    while (size != 0) {
      Node cur = new Node((int) (Math.random() * (value + 1)));
      pre.next = cur;
      pre = cur;
      size--;
    }
    return head;
  }
  public static void printLinkedList(Node head) {
    if(head==null) {
      return;
    }
    while(head!=null) {
      System.out.print(head.value+" ");
      head=head.next;
    }
  }
  public static void main(String[] args) {
    int len=10;
    int value=10;
    Node node=generateRandomLinkedList(len,value);
    System.out.println("原单链表:");
    printLinkedList(node);
    deleteGivenValue(node, 5);
    System.out.println("\n删除给定值后的单链表:");
    printLinkedList(node);
  }
}
相关文章
|
5月前
|
JavaScript 前端开发 索引
如何判断一个值是否在数组内?
如何判断一个值是否在数组内?
|
5月前
|
存储 弹性计算 运维
添加两个值
【4月更文挑战第29天】
29 4
|
5月前
|
存储 弹性计算 运维
添加多个值
【4月更文挑战第29天】
25 2
|
5月前
59.已知xxz+yzz=532,求所有可能的x,y,z的值
59.已知xxz+yzz=532,求所有可能的x,y,z的值
38 0
|
5月前
|
机器学习/深度学习 算法 数据处理
盘点四种计算数组中元素值为1的个数的方法
盘点四种计算数组中元素值为1的个数的方法
63 0
|
5月前
|
索引
Leetcode 给定一个数组,给定一个数字。返回数组中可以相加得到指定数字的两个索引
Leetcode 给定一个数组,给定一个数字。返回数组中可以相加得到指定数字的两个索引
|
存储 算法 JavaScript
设计并实现一个函数, 功能为给定一个存储为随机整数的数组,从中删除所有值为i的整数
设计并实现一个函数, 功能为给定一个存储为随机整数的数组,从中删除所有值为i的整数
|
人工智能 Unix BI
1370:最小函数值(minval)
1370:最小函数值(minval)
定义一个包含10个整数元素的数组,初始值由用户给定。找出数组中的最大数并连同下标一起输出。
定义一个包含10个整数元素的数组,初始值由用户给定。找出数组中的最大数并连同下标一起输出。
208 0