题解 | #从单向链表中删除指定值的节点#
从单向链表中删除指定值的节点
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("]", ""));
}
}
}

