@记录自己的学习之旅
反转链表实现
题目描述
输入一个链表,反转链表后,输出新链表的表头。
示例 输入{1,2,3} 输出{3,2,1}
代码实现(Java)
public ListNode ReverseList(ListNode head) {
//若当前节点为空 则返回空
if(head == null){
return null;
}
ListNode pre = null; //用来保存当前节点的的前一节点
ListNode next = null;//用来保存当前节点的下一节点
while(head != null){
next = head.next;//保存当前节点的下一节点
head.next = pre;//让当前节点从指向后一节点变为指向前一节点 实现反转
//1->2->3->4 ----> 1<-2 3->4
//1<-2 3->4 ----> 1<-2<-3 4
//接着将pre和head依次后移一个位置 继续循环反转
pre = head;
head = next;
}
return pre;
}