没什么难点,删除单链表节点是lc的简单题,主要是大家在输出完一个用例后,一定记得换行!!我活活找了快一个小时的bug,结果发现是这。。ACM模式太坑了。。

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNextInt()) {
            int num =in.nextInt();
            Node head = new Node(in.nextInt());
            num--;
            while(num > 0){
                int cur = in.nextInt();
                int pre = in.nextInt();
                insert(head,pre,cur);
                num--;
            }
            int deleteVal = in.nextInt();
            //删除头节点
            if(head.val == deleteVal){
                head = head.next;
            }
            else{
                delete(head,deleteVal);
            }

            Node test = head;
            //打印输出
            while(test != null){
                System.out.print(test.val + " ");
                test = test.next;
            }
            //千万别忘了换行!!!!!!
            System.out.println();
        }
    }
    //插入Node
    public static void insert(Node head, int preVal, int newVal){
        Node newNode = new Node(newVal);
        Node cur = head;
        Node temp;
        while(cur != null){
            if(cur.val == preVal){
                temp = cur.next;
                cur.next = newNode;
                newNode.next = temp;
                return;
            }
            cur = cur.next;
        }
    }

    //删除Node
    public static void delete(Node head, int delete){
        Node cur = head;
        Node temp;
        while(cur.next != null){
            if(cur.next.val == delete){
                cur.next = cur.next.next;
                return;
            }
            cur = cur.next;
        }
    }
}
class Node{
    int val;
    Node next;
    Node(int val){
        this.val = val;
    }
}