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

使用linkedList集合,利用迭代器遍历头节点,提高效率。

import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextInt()) { // 注意 while 处理多个 case
            int n = in.nextInt();
            List<Integer> list = new LinkedList<>();
            list.add(in.nextInt());
            for(int i=0;i<n-1;i++){
                int node = in.nextInt();
                int position = in.nextInt();
                int leng = list.size();
                if(i==0){
                    list.add(node);
                }else{
                    // 利用迭代器遍历linkedList效率高
                    Iterator<Integer> iter =  list.iterator();
                    int j = 0;
                    while(iter.hasNext()){
                        j++;
                        int tmp = iter.next();
                        if(tmp == position){
                            // 在这个节点后面加上新增节点
                            list.add(j,node);
                            // 因为不重复,所以加完直接退出
                            break;
                        }
                    }
                }
            }
            // 这里必须用包装类接收,如果用int下面删除会直接根据索引删除
            Integer removeInt = in.nextInt();
            list.remove(removeInt);
            for(int i:list){
                System.out.print(i + " ");
            }
        }
    }
}

全部评论

相关推荐

小肥罗:此乃引蛇出洞之计,勾出你想去杭州的原因再告诉你不在杭州,让你打脸,自己离开。好一招抛砖引玉,虾仁猪心。你回复:计划去杭州,但我心中第一选择是宁波~巧了! 这计名叫“阿Q精神胜利法之厚脸皮不要脸我不尴尬谁爱尴尬谁尴尬去”之计!克制一切!
这个工作能去吗
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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