题目描述:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。
题目分析:直接一遍遍历下来,使用尾插法,记录前一个结点
//反转链表
public static ListNode reverseList(ListNode head) {
ListNode reverseListHead = null;//反转后的头结点
ListNode currentListNode = head;//当前结点
ListNode preListNode = null;//前一个结点
while (currentListNode != null) {
ListNode next = currentListNode.next;//先获取下一个结点
reverseListHead = currentListNode;
currentListNode.next = preListNode;//当前结点的下一个指向是原链表的前一个结点
preListNode = currentListNode;//重新设置前一个节点为当前的
currentListNode = next;//当前结点设为下一个,继续遍历
}
return reverseListHead;
}