rambless
从单向链表中删除指定值的节点
https://www.nowcoder.com/practice/f96cd47e812842269058d483a11ced4f
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
while (in.hasNextInt()) { // 注意 while 处理多个 case
int n = in.nextInt();
Node head = new Node(0);
head.next = new Node(in.nextInt());
int val;
int nVal;
for(int i=0; i<n-1; i++) {
val = in.nextInt();
nVal = in.nextInt();
add(head, val, nVal);
}
get(head, in.nextInt());
}
}
private static void add(Node head, int val, int nVal) {
Node t = new Node(val);
Node temp;
Node pre = head.next;
int v;
while(pre != null) {
v = pre.val;
if(v == nVal) {
temp = pre.next;
pre.next = t;
t.next = temp;
break;
}
pre = pre.next;
}
}
private static void get(Node head, int num) {
Node pre = head;
Node curr = head.next;
int val;
while(curr != null) {
val = curr.val;
if(val==num) {
if(curr.next == null) {
pre.next = null;
} else {
pre.next = curr.next;
}
break;
}
pre = curr;
curr = curr.next;
}
head = head.next;
while(head != null) {
System.out.print(head.val + " ");
head = head.next;
}
}
static class Node {
int val;
Node next;
public Node(int val) {
this.val = val;
}
}
}

