题解 | #从单向链表中删除指定值的节点# 直接使用List

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

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

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

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        // 节点个数
        int n = scanner.nextInt();
        // 头节点
        int head = scanner.nextInt();
        // 用于存储数据的集合
        List<Integer> list = new ArrayList<>();
        // 先将头节点的值存入集合
        list.add(head);
        // 还剩n-1个节点,每个节点两两一组录入
        for (int i = 0; i < n - 1; i++) {
            int nextOne = scanner.nextInt();
            int thisOne = scanner.nextInt();
            // thisOne后接nextOne 即找到thisOne的下标 + 1 就是nextOne的位置
            list.add(list.indexOf(thisOne) + 1, nextOne);
        }
        // 需要删除的值
        int delete = scanner.nextInt();
        // 删除值为delete的元素
        list.remove(list.indexOf(delete));
        // 按要求输出
        for (Integer i : list) {
            System.out.print(i + " ");
        }
    }
}

全部评论

相关推荐

算法丰川祥:实际就两个人给他投,它这么说好显得自己比较抢手
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务