Java实现单链表

    科技2025-09-27  59

    Java实现单链表

    public class SingleLinkedList { Node head=new Node(0); //添加一个节点 public void add(Node node){ Node temp= head; while(true){ // 如果节点的next为null,说明已经到了链表的末尾 if(temp.next== null){ break; } temp= temp.next; } temp.next= node; } // 打印这个单链表的所有数据 public void print(){ Node temp= head; if(temp.next== null){ System.out.println("空链表"); } while (true){ temp = temp.next; if(temp==null){ break; } System.out.println(temp.data); } } // 得到链表的长度 public int length(){ Node temp= head; int length= 0; while (true){ temp= temp.next; if(temp==null){ break; } length+= 1; } return length; } // 输出第i个节点的数据 public void getI(int i){ int flag= -1; Node temp= head; while(true){ temp= temp.next; if(temp== null){ System.out.println("输入的编号有误!"); break; } flag+= 1; if(i== flag){ System.out.println("编号为"+i+"的节点的数据为:"+temp.data); return; } } } // 删除编号为i的节点 public void deleteI(int i){ Node temp= head; int flag= -1; if(temp.next== null){ System.out.println("此单链表为空"); } if(i<0||i>length()){ System.out.println("输入的编号有误"); } while (true) { //如果要删除的节点为0 if(i== 0){ temp.next= temp.next.next; break; } //如果这个节点已经是最后一个节点 if(temp.next== null){ break; } temp= temp.next; flag+= 1; if(flag== (i-1 )){ //已经找到了待删除节点的前一个节点 temp.next= temp.next.next; } } } }
    Processed: 0.009, SQL: 8