题目来自剑指Offer之十六。
链表结点结构
class ListNode{int value;ListNode next = null;public ListNode(int value){this.value = value;}}
题目描述
- 输入一个链表的头结点,反转该链表并输出翻转后的头结点
代码实现
- 遍历该链表
- 保存后一个结点,以防止当前结点的next值更新后链表断开
- 保存前一个结点,以便当前结点的next值更新为前一个结点
- 最后一个结点将是反转之后的头结点,保存该结点返回
public static ListNode reverseList(ListNode head) {ListNode reverseListHead = null;ListNode curNode = head;ListNode preNode = null;ListNode nextNode = null;while(curNode != null){nextNode = curNode.next;if(nextNode == null){reverseListHead = curNode;}curNode.next = preNode;preNode = curNode;curNode = nextNode;}return reverseListHead;}
