剑指offer:反转链表
题目描述
输入一个链表,反转链表后,输出新链表的表头。
解题思路
头插法,利用两个node(cur、next),一个记录当前处理的节点,一个记录当前节点的下一个节点,防止链表丢失。改变链表的指向顺序,最后一个插入链表的数据就是表头。

public class Solution {
public ListNode ReverseList(ListNode head) {
//head初始指向链表头节点
if(head == null){ //链表为空
return null;
}
ListNode cur = null; //记录当前节点
ListNode next = null;//记录后继节点
while(head != null){
next = head.next; //①记录头节点的后续节点
head.next = cur; //②当前节点的后继节点指向上一个处理的节点
cur = head; //③记录当前节点
head = next; //④head指向后继节点
}
return cur;
}
}

浙公网安备 33010602011771号