题解 | #从单向链表中删除指定值的节点#
从单向链表中删除指定值的节点
https://www.nowcoder.com/practice/f96cd47e812842269058d483a11ced4f
import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { private static class LinkNode{ int val; LinkNode next; LinkNode(int val){ this.val=val; } } public static void main(String[] args) { Scanner in = new Scanner(System.in); // 注意 hasNext 和 hasNextLine 的区别 int n=in.nextInt(); int head=in.nextInt(); LinkNode h=new LinkNode(head); for(int i=1;i<n;i++){ int b=in.nextInt(); int f=in.nextInt(); insert(h,b,f); } int val=in.nextInt(); delete(h,val); LinkNode p=h; while(p!=null){ System.out.print(p.val+" "); p=p.next; } } public static void delete(LinkNode h,int val){ LinkNode p=h; while(p.next.val!=val){ p=p.next; } LinkNode tmp=p.next.next; p.next=tmp; } public static void insert(LinkNode h,int b,int f){ LinkNode p=h; while(p.val!=f){ p=p.next; } LinkNode tmp=p.next; p.next=new LinkNode(b); p.next.next=tmp; } }