题解 | #从单向链表中删除指定值的节点#

从单向链表中删除指定值的节点

https://www.nowcoder.com/practice/f96cd47e812842269058d483a11ced4f

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    static List<String> linkedList = new ArrayList<>();

    public static void main(final String[] args) {
        final Scanner sc = new Scanner(System.in);

        while (sc.hasNext()) {
            final String str = sc.nextLine();
            List<String> list = new ArrayList<>();

            list = new ArrayList<>(Arrays.asList(str.split(" ")));

            final String del = list.get(list.size() - 1);
            list.remove(0);
            Main.linkedList.add(list.get(0));
            list.remove(list.size() - 1);
            for (int i = 1; i < list.size() - 1; i++) {
                Main.LinkedListAdd(list.get(i), list.get(i + 1));
            }
            Main.LinkedListDelete(del);
            System.out.println(String.join(" ", Main.linkedList));
        }
        sc.close();
    }

    private static void LinkedListAdd(final String s, final String s1) {
        for (int i = 0; i < Main.linkedList.size(); i++) {
            if (Objects.equals(Main.linkedList.get(i), s1)) {
                Main.linkedList.add(i + 1, s);
            }
        }
    }

    private static void LinkedListDelete(final String s) {
        for (int i = 0; i < Main.linkedList.size(); i++) {
            if (Objects.equals(Main.linkedList.get(i), s)) {
                Main.linkedList.remove(i);
            }
        }
    }
}

全部评论

相关推荐

10-17 12:16
同济大学 Java
7182oat:快快放弃了然后发给我,然后让我也泡他七天最后再拒掉,狠狠羞辱他一把😋
点赞 评论 收藏
分享
jack_miller:我给我们导员说我不在这里转正,可能没三方签了。导员说没事学校催的时候帮我想办法应付一下
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务