芝士蛋糕


私信TA

用户名:dotcpp0677002

访问量:415

签 名:

等  级
排  名 7313
经  验 1268
参赛次数 0
文章发表 6
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

解题思路:熟悉链表的基本操作,分析题目,按照基本操作写题,如能简化或发现bug欢迎指正,谢谢

注意事项:观察题目输出,可知题目要求尾插法

参考代码:import java.util.Scanner;

public class Main {
   public static void main(String[] args){
       Scanner ms = new Scanner(System.in);
       int n = ms.nextInt();
       SinglyLinkedList list = new SinglyLinkedList();
       for (int i = 0; i < n; i++) {
           list.insert(i,ms.nextInt());
       }
       int aim=ms.nextInt();
       while(list.deleteAim(aim)==0){
           list.deleteAim(aim);
       }
       list.loop();
   }
}
class SinglyLinkedList{
   Node sentry;
   public SinglyLinkedList() {
       sentry=new Node(110,null);
   }
   static class Node{
       int value;
       Node next;
       public Node(int value, Node next) {
           this.value = value;
           this.next = next;
       }
   }
   private Node findNode(int index){
       int i=-1;
       Node p=sentry;
       while(p!=null){
           if(i==index) return p;
           p=p.next;
           i++;
       }
       return null;
   }
   private int findNode2(int value){
       int i=-1;
       Node p=sentry;
       while(p!=null){
           if(p.value==value) return i;
           p=p.next;
           i++;
       }
       return -5;
   }
   public void insert(int index,int value){
       Node last =findNode(index-1);
       //if(last==null)
       last.next=new Node(value,last.next);
   }
   public int deleteAim(int value){
       int  index = findNode2(value);
       if(index==-5) return -1;
       Node pre =findNode(index-1);
       Node aim=pre.next;
       pre.next=aim.next;
       return 0;
   }
   public void loop(){
       Node p =sentry.next;
       while(p!=null){
           System.out.print(p.value+" ");
           p=p.next;
       }
   }
}

 

0.0分

1 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区