题解 | #从单向链表中删除指定值的节点#
从单向链表中删除指定值的节点
https://www.nowcoder.com/practice/f96cd47e812842269058d483a11ced4f
import java.util.Scanner; // mark一下 题解中用ArrayList真是绝 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); while (in.hasNextInt()) { int n = in.nextInt(); int headVal = in.nextInt(); Node head = new Node(headVal); Node p = head; for (int i = 0; i < n - 1; i++) { int val = in.nextInt(); Node x = new Node(val); int index = in.nextInt(); while (p != null) { if (p.val == index) { x.next = p.next; p.next = x; break; } else { p = p.next; } } p = head; } int target = in.nextInt(); StringBuilder sb = new StringBuilder(); while (p != null) { if (p.val != target) { sb.append(p.val + " "); } p = p.next; } String ans = sb.toString(); System.out.println(ans.substring(0, ans.length())); in.nextLine(); } } static class Node { int val; Node next; Node(int val) { this.val = val; this.next = null; } } }