首先构造一个Node节点结构
public class Node {
public Node next;
public int age;
}
接着我们初始化这个链表
Node head=null,p=null;//head表示头结点,一般不要轻易修改
for (int i = 0; i < 10; i++) {
Node node=new Node();
node.age = i;
if(head==null){
head = node;
p = head;
}else {
p.next = node;
p = p.next;
}
}
初始化完成之后开始着手逆序这个链表
1 定义p,next,left指针分别代表当前节点,下一个节点和逆序的头结点
2 因为要逆序节点就要反转方向所以先记录下下一个节点在哪里不然的话就找不到后面的节点了,所以要先获取next=p.next
3 现在p节点就可以把指针指向left节点了,此时left节点还是null(p.next=left)
4 left节点右移到p节点的位置 (left=p)
5 p节点现在就可以右移到next节点了(p=next)
public static Node reverseNode(Node head){
Node p = head;
Node nextNode=p;
Node left=null;
if(p==null) return p;
while (p!=null){
nextNode= p.next;
p.next = left;
left = p;
p = nextNode;
}
return left;
}