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