// 将列表反转
public static void reverseList(HeroNodeItem head) {
// 如果单链表为空,或者只有一个节点,不需要反转
if(head.next == null || head.next.next == null) {
return;
}
// 定义一个辅助变量cur,指向当前节点
HeroNodeItem cur = head.next;
// 用于指向当前节点的下一个节点
HeroNodeItem next = null;
// 定义一个空的头节点
HeroNodeItem reverseHead = new HeroNodeItem(0, "", "");
// 遍历原来的链表,每遍历一个节点,就将其取出,并放在新的链表reverseHead的最前端
while(cur != null) {
// 保存当前节点的下一个节点
next = cur.next;
// 将cur的下一个节点指向新链表的最前端
cur.next = reverseHead.next;
reverseHead.next = cur;
// cur后移
cur = next;
}
// 将head.next指向reverseHead.next,实现单链表反转
head.next = reverseHead.next;
}