思路很简单,就是从第二个节点开始,把每个节点都插入到头节点之后。
需要两个临时变量存储每次循环状态下第一个节点和原来第一个节点的后一个节点。
class SingleLinkedList{
private HeroNode head = new HeroNode();
//反转链表
public void reverse(){
HeroNode temp = head;
if (temp.next==null){
System.out.println("当前数组为空");
return;
}
temp=temp.next;//temp始终指向原链表第一个节点
while(temp.next!=null) {
HeroNode hn1 = head.next;//每次循环状态下第一个节点
HeroNode hn2 = temp.next;//原来第一个节点的后一个节点
head.next=temp.next;
temp.next=temp.next.next;
hn2.next=hn1;
}
}
}