题目描述


输入一个链表,反转链表后,输出链表的所有元素。


/*
public class ListNode {
int val;
ListNode next = null;

ListNode(int val) {
this.val = val;
}
}*/
public class Solution {
public ListNode ReverseList(ListNode head) {
if(head == null)
return head;

ListNode reverseHeadNode = null;
ListNode preNode =null;
ListNode curNode = head;

while(curNode != null){
//保存当前结点的下个结点
ListNode nextNode = curNode.next;
//如果保存的当前结点的下个结点是null,说明到达链表尾部,返回
if(nextNode == null){
reverseHeadNode= curNode;
}

//指针反转
curNode.next = preNode;//当前指针指向前一个,防止链表断开
preNode = curNode;//当前值赋给前面一个值
curNode = nextNode;//下个值赋给当前值
}
return reverseHeadNode;

}
}