题解 | #从单向链表中删除指定值的节点#
从单向链表中删除指定值的节点
https://www.nowcoder.com/practice/f96cd47e812842269058d483a11ced4f
package NewComer.medium;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
/**
* 输入一个单向链表和一个节点的值,从单向链表中删除等于该值的节点,删除后如果链表中无节点则返回空指针。
* 链表的值不能重复。
* 构造过程,例如输入一行数据为:
* 6 2 1 2 3 2 5 1 4 5 7 2 2
* 则第一个参数6表示输入总共6个节点,第二个参数2表示头节点值为2,剩下的2个一组表示第2个节点值后面插入第1个节点值,为以下表示:
*/
public class HJ48_从单向链表中删除指定值的节点 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
int total = sc.nextInt();
int head = sc.nextInt();
ArrayList<Integer> linkedlist= new ArrayList<Integer>();
linkedlist.add(head);
for(int i=0;i<total-1;i++){ //6个节点 连接5次,故total-1
int next = sc.nextInt(); //后一个指针
int pre = sc.nextInt(); //前一个指针
linkedlist.add(linkedlist.indexOf(pre)+1,next); //把后一个指针插在前一个指针的位置的后面
}
int k = sc.nextInt();
linkedlist.remove(linkedlist.indexOf(k));
for(int x:linkedlist){
System.out.print(x+" ");
}
}
}
}
迅雷公司福利 193人发布
查看13道真题和解析