链表介绍
- 链表是以结点的方式来存储,是链式存储
- 每个结点包含data域,next域;指向下一个结点
- 链表的每一个结点不一定是连续存储的
- 链表分带头结点的和没有头结点的链表
代码实现
先定义一个几点reverseHead=newHeroNode
从头遍历原本的链表,每遍历一个结点,取出一个结点放在新的链表(reverseHead)的最前面
原本的链表head.next=reverseHead.next
原本的链表:
期望的链表:
过程:
PS:
1. head节点不存放具体的数据,用于表示单链表的头
2. reverseHead节点和head节点相同
实现反转的方法:
public void reversetList(HeroNode head){
// 如果当前链表为空,或者只有一个结点,无需反转,直接返回
if(head.next==null || head.next.next==null){
return;
}
// 定义一个辅助变量,遍历原本的链表
HeroNode cur=head.next;
HeroNode next=null; // 指向当前结点的下一个结点