题解 | #从单向链表中删除指定值的节点#
从单向链表中删除指定值的节点
https://www.nowcoder.com/practice/f96cd47e812842269058d483a11ced4f
import java.util.*; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); while (scan.hasNextLine()) { //,剩下的2个一组表示第2个节点值后面插入第1个节点值, //6 2 1 2 3 2 5 1 4 5 7 2 2 String str = scan.nextLine(); String[] arr = str.split(" "); //第一个参数6表示输入总共6个节点 //第二个参数2表示头节点值为2 链表的值不能重复。 //链表的头 链表的索引下标 //4 输入要删除的结点的值 ArrayList<Integer> list = new ArrayList<Integer>(); list.add(0, Integer.valueOf(arr[1])); //总共有num组 int num = Integer.valueOf(arr[0]); for (int i = 2; i < arr.length - 1; i++) { int k = list.indexOf(Integer.valueOf(arr[i + 1])); list.add(k + 1, Integer.valueOf(arr[i])); // System.out.println("list:" +list + "k:" + k + "arr[i+1:" +arr[i+1] ); i++; } // System.out.println(list); //输入要删除的结点的值 int re = Integer.valueOf( arr[arr.length - 1]); list.remove(list.indexOf(re)); System.out.println(list.toString().replaceAll(",", "").replace("[", "").replace("]", "")); } } }