先找需要修改的节点,通过遍历。
temp.name = heroNode.name;temp.nickName = heroNode.nickName;
代码实现 //修改节点的信息,根据编号来修改,编号不能修改 public void edit(HeroNode heroNode) { //判断是否为空 if(head.next == null) { System.out.println("链表为空~~"); return; } HeroNode temp = head.next; boolean flag = false; while(true) { if(temp == null) { //到链表的最后 break; } //找到需要修改的节点 if(temp.no == heroNode.no) { flag = true; break; } temp = temp.next; } if(flag) { temp.name = heroNode.name; temp.nickName = heroNode.nickName; }else{ System.out.printf("没有找到编号%d的节点,不能修改\n",heroNode.no); } } 运行截图 单链表的删除先找到需要删除的这个节点的前一个节点temp。
temp.next=temp.next.next。
被删除的节点,将不会有其他引用指向,会被垃圾回收机制回收。
代码实现 //删除节点 public void del(int no) { HeroNode temp = head; boolean flag = false; while(true) { //已经到链表最后 if(temp.next == null) { break; } //找到待删除节点的前一个节点 if(temp.next.no == no) { flag = true; break; } temp = temp.next;//temp后移,遍历 } if(flag) { temp.next=temp.next.next; }else{ System.out.printf("要删除的%d不存在,无法删除",no); } } 运行截图