题目
示例 1:
输入:head = [1,2,3,4,5]
输出:[5,4,3,2,1]
示例 2:
输入:head = [1,2]
输出:[2,1]
示例 3:
输入:head = []
输出:[]
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/reverse-linked-list
解题思路
这道题可以开辟两个结点,一个指向前结点,一个指向当前,遍历时先移动Head,然后将cur的下一个指向pre就可以了,最后pre为链表头结点。
代码
1 ListNode pre = null; 2 while(head != null){ 3 ListNode cur = head; 4 head = head.next; 5 cur.next = pre; 6 pre = cur; 7 } 8 return pre;