【链表3】反转链表
原创
©著作权归作者所有:来自51CTO博客作者wx637b060b079f7的原创作品,请联系作者获取转载授权,否则将追究法律责任
题目描述
输入一个链表,反转链表后,输出链表的所有元素。
/*
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;
}
}