/**
* 反转链表思路
* 1.定义一个新链表
* 2.遍历链表,每次将当前结点插入新链表的头部,也就是头插法
*/
public void reverse(HeroNode head){
HeroNode temp=head.getNext();
if(temp==null || temp.getNext()==null){
System.out.println(666);
return;
}
HeroNode inverseHead=new HeroNode(0,"","");
HeroNode next=null;
while (temp!=null){
next=temp.getNext();
addToHead(inverseHead,temp);
temp=next;
}
head.setNext(inverseHead.getNext());
}
/**
* 定义一个将结点插入链表头部的方法
*
*/
public void addToHead(HeroNode head,HeroNode node){
node.setNext(head.getNext());
head.setNext(node);
}
//定义一个HeroNode类,每一个HeroNode对象就是一个节点
class HeroNode{
private int no;
private String name;
private String nickName;
private HeroNode next;
public HeroNode(int no, String name, String nickName) {
this.no = no;
this.name = name;
this.nickName = nickName;
}
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;
}
public String getNickName() {
return nickName;
}
public void setNickName(String nickName) {
this.nickName = nickName;
}
public HeroNode getNext() {
return next;
}
public void setNext(HeroNode next) {
this.next = next;
}
@Override
public String toString() {
return "HeroNode{" +
"no=" + no +
", name='" + name + '\'' +
", nickName='" + nickName + '\'' +
'}';
}
}
单链表操作之反转单链表
最新推荐文章于 2021-04-10 19:05:43 发布