单链表的增删查改

    技术2022-07-10  102

    class SingleLinkList4{ //创建头节点 private Hero head = new Hero(0); public Hero getHead() { return head; } //删除节点 public void del(int no){ if (head.getNext() == null){ System.out.println("链表为空!!!"); return; } boolean flag = false; Hero temp = head; while (true){ if (temp.getNext() == null){ break; } if (temp.getNext().getNo() == no){//找到要删除节点的前一个节点 flag = true; break; } temp = temp.getNext(); } if (flag){ temp.setNext(temp.getNext().getNext()); }else { System.out.println("没有找到这个节点!!!"); } } //添加节点到链表中 public void add(Hero node){ Hero temp = head; while (true){ if (temp.getNext() == null){//找到链表的最后 break; } temp = temp.getNext();//像后移动 } temp.setNext(node); } //按照编号顺序添加链表 public void addByOrder(Hero node){ Hero temp = head; boolean flag = false; while (true){ if (temp.getNext() == null){ break; } //如果要加入的节点的编号比链表中编号要小 if (temp.getNext().getNo() > node.getNo()){ break; }else if(temp.getNext().getNo() == node.getNo()){ flag = true; break; } temp= temp.getNext(); } if (flag){ System.out.println("链表中已经存在此节点!!"); }else { node.setNext(temp.getNext()); //像头插法 temp.setNext(node); } } //展示链表里面的数据 public void show(){ if (head.getNext() == null){ System.out.println("链表为空!!!"); return; } Hero temp = head.getNext(); while (temp != null){//当前节点不为空 System.out.println(temp); temp = temp.getNext(); } } } class Hero{ private int no; private Hero next; @Override public String toString() { return "Hero{" + "no=" + no + '}'; } public int getNo() { return no; } public void setNo(int no) { this.no = no; } public Hero getNext() { return next; } public void setNext(Hero next) { this.next = next; } public Hero(int no) { this.no = no; } }
    Processed: 0.008, SQL: 9