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

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

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

import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        while (scan.hasNextLine()) {
            //,剩下的2个一组表示第2个节点值后面插入第1个节点值,
            //6 2   1 2   3 2   5 1   4 5   7 2     2
            String str = scan.nextLine();
            String[] arr = str.split(" ");
            //第一个参数6表示输入总共6个节点
            //第二个参数2表示头节点值为2  链表的值不能重复。
            //链表的头  链表的索引下标
            //4 输入要删除的结点的值
            ArrayList<Integer> list = new ArrayList<Integer>();
            list.add(0, Integer.valueOf(arr[1]));
            //总共有num组
            int num = Integer.valueOf(arr[0]);
            for (int i = 2; i < arr.length - 1; i++) {
                int k  = list.indexOf(Integer.valueOf(arr[i + 1]));
                list.add(k + 1, Integer.valueOf(arr[i]));
                // System.out.println("list:" +list + "k:" + k + "arr[i+1:" +arr[i+1] );
                i++;
            }
           // System.out.println(list);
            //输入要删除的结点的值
            int re = Integer.valueOf( arr[arr.length - 1]);
            list.remove(list.indexOf(re));
            System.out.println(list.toString().replaceAll(",", "").replace("[",
                               "").replace("]", ""));



        }
    }
}

全部评论

相关推荐

09-27 14:42
已编辑
浙江大学 Java
未来未临:把浙大放大加粗就行
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务