public class SingleLinkList { private HeroNode head=new HeroNode(-1,""); public void addNode(HeroNode heroNode){ HeroNode temp=head; while (true){ if(temp.getNext()==null){ break; } temp=temp.getNext(); } temp.setNext(heroNode); } public void delNode(HeroNode heroNode){ HeroNode temp=head; while (true){ if(temp.getNext()==null){ break; } if(temp.getNext()==heroNode){ HeroNode next = temp.getNext(); temp.setNext(next.getNext()); next.setNext(null); break; } temp=temp.getNext(); } } public void modifyNode(HeroNode oldNode,HeroNode newNode){ HeroNode temp=head; while (true){ if(temp.getNext()==null){ break; } if(temp.getNext()==oldNode){ newNode.setNext(oldNode.getNext()); oldNode.setNext(null); temp.setNext(newNode); break; } temp=temp.getNext(); } } public void printList(){ HeroNode temp=head.getNext(); while (true){ if(temp==null){ break; } System.out.println(temp); temp=temp.getNext(); } } //--------------------- 更新编号来更新--------------------- public void addNodeByNo(HeroNode heroNode){ HeroNode temp=head; boolean update=false; while (true) { if(temp.getNext()==null){ break; } if(temp.getNext().getNo()>heroNode.getNo()){ break; } if(temp.getNext().getNo()==heroNode.getNo()){ //更新 update=true; break; } temp=temp.getNext(); } if(update){ HeroNode next = temp.getNext(); temp.setNext(heroNode); heroNode.setNext(next.getNext()); next.setNext(null); return; } if(temp.getNext()==null){ temp.setNext(heroNode); return; } HeroNode next = temp.getNext(); temp.setNext(heroNode); heroNode.setNext(next); } public void delNodeByNo(int no){ HeroNode temp=head; boolean del=false; while (true){ if(temp.getNext()==null){ break; } if(temp.getNext().getNo()==no){ del=true; break; } temp=temp.getNext(); } if(del){ HeroNode next = temp.getNext(); temp.setNext(next.getNext()); next.setNext(null); } } public void updateByNo(HeroNode newHero){ HeroNode temp=head; boolean update=false; while (true){ if(temp.getNext()==null){ break; } if(temp.getNext().getNo()==newHero.getNo()){ update=true; break; } temp=temp.getNext(); } if(update){ HeroNode next = temp.getNext(); temp.setNext(newHero); newHero.setNext(next.getNext()); next.setNext(null); } } public static void main(String[] args) { HeroNode hao = new HeroNode(4, "hao"); HeroNode ming = new HeroNode(2, "ming"); /* HeroNode xiao = new HeroNode(1, "xiao"); HeroNode hao = new HeroNode(4, "hao"); HeroNode ming = new HeroNode(2, "ming"); SingleLinkList linkList = new SingleLinkList(); linkList.addNode(xiao); linkList.addNode(hao); linkList.addNode(ming); // linkList.addNode(); //linkList.addNode(new HeroNode("3","ni")); //linkList.addNode(hao); linkList.printList(); System.out.println("............................"); *//* linkList.delNode(hao); linkList.delNode(xiao); linkList.printList();*//* linkList.modifyNode(ming,new HeroNode(99,"ddd"));*/ SingleLinkList linkList = new SingleLinkList(); linkList.addNodeByNo(hao); linkList.addNodeByNo(ming); linkList.addNodeByNo(new HeroNode(2,"鱼")); linkList.delNodeByNo(2); linkList.updateByNo(new HeroNode(4,"ppp")); linkList.printList(); } } public class HeroNode { private int no; private String name; private HeroNode next; public HeroNode(int no, String name) { this.no = no; this.name = name; } public HeroNode getNext() { return next; } public void setNext(HeroNode next) { this.next = next; } @Override public String toString() { return "HeroNode{" + "no=‘" + no + ‘\‘‘ + ", name=‘" + name + ‘\‘‘ + ‘}‘; } public int getNo() { return no; } public void setNo(int no) { this.no = no; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
原文:https://www.cnblogs.com/yangxiaohui227/p/13591566.html