//修改节点的信息,根据编号(no)来修改
public void update(Heronode newHeroNode){
//判断是否为空
if(head.next == null){
System.out.println("链表为空!");
return;
}
//找到需要修改的节点,根据编号no
//定义一个辅助变量,来帮助我们遍历寻找节点
Heronode temp = head.next;
boolean flag = false; //表示是否找到该节点
while(true){
if(temp == null){ //表示链表已经遍历完毕
break;
}
if(temp.no == newHeroNode.no){
flag = true; //说明找到了要修改的节点
break;
}
temp = temp.next;
}
//根据flag来判断是否找到这个节点
if(flag){
temp.name = newHeroNode.name;
temp.nickname = newHeroNode.nickname;
}else { //没有找到修改的节点的no
System.out.println("没有找到此编号的节点"+temp.no);
}
}
测试:
public static void main(String[] args){
//创建节点
Heronode hero1 = new Heronode(1, "宋江", "及时雨");
Heronode hero2 = new Heronode(2, "卢俊义", "玉麒麟");
Heronode hero3 = new Heronode(3, "无用", "智多星");
Heronode hero4 = new Heronode(4, "林冲", "豹子头");
//创建链表
SinglelinkedList list = new SinglelinkedList();
//加入节点,第一种方式,不按照顺序
// list.addNode(hero1);
// list.addNode(hero4);
// list.addNode(hero2);
// list.addNode(hero3);
//第二种方式,按照顺序
list.addNode2(hero1);
list.addNode2(hero4);
list.addNode2(hero2);
list.addNode2(hero3);
//显示链表
list.showList();
//测试修改节点
Heronode heronode = new Heronode(2, "玉麒麟", "卢俊义");
list.update(heroNode);
System.out.println("=========================");
//显示修改之后的链表
list.showList();
}
测试结果:



