题解 | #从单向链表中删除指定值的节点#
从单向链表中删除指定值的节点
https://www.nowcoder.com/practice/f96cd47e812842269058d483a11ced4f
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int nodeSum=sc.nextInt();
ListNode head=new ListNode(sc.nextInt(),null);
int count=0;
while(count<nodeSum-1){ //hasNext()无法返回false
int first=sc.nextInt();
int second=sc.nextInt();
Insert(head,first,second);
count++;
}
int k=sc.nextInt();
ListNode vhead=new ListNode(0,head);
ListNode index=vhead;
while(index!=null&&index.next!=null){
if(index.next.key==k){
index.next=index.next.next;
}
index=index.next;
}
while(head!=null){
System.out.print(head.key+" ");
head=head.next;
}
}
public static void Insert(ListNode head,int first,int second){
ListNode index=head;
while(index!=null){
if(index.key==second){
ListNode temp=index.next;
index.next=new ListNode(first,temp);
return;
}
index=index.next;
}
}
}
class ListNode{
int key;
ListNode next;
public ListNode(int key,ListNode next){
this.key=key;
this.next=next;
}
}

