具体代码实例
// 反转单链表
public static void reversList(HeroNode head){
// 如果当前链表为空,或只有一个节点,无需反转直接返回
if(head.next == null|| head.next.next==null){
return ;
}
// 定义一个辅助指针,帮助我们遍历原来的链表
HeroNode cur = head.next;
HeroNode next = null; // 指向当前节点的下一个节点
HeroNode reverseHead = new HeroNode(0,"","");
// 遍历原来的列表,就将其取出,并更放到新的链表中
while (cur!=null){
next = cur.next; // 先保存当前节点的下一个节点
cur.next = reverseHead.next; // 将cur的下一个节点指向新节点的第一个位置
reverseHead.next = cur;
cur = next; // 让cur后移
}
head.next = reverseHead.next;
}