一、题目
给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。
二、解题思路
定义两个指针 prePoint = null 和 curPoint = head,开始依次向后遍历,并将 curPoint.next = prePoint,直至curPoint指向null。
开始:
结束:
代码:
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode() {}
* ListNode(int val) { this.val = val; }
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
* }
*/
class Solution {
public ListNode reverseList(ListNode head) {
// 声明两个指针,
ListNode curPoint = head;
ListNode prePoint = null;
while(curPoint!=null){
// 保存当前指针的下一个节点
ListNode next = curPoint.next;
curPoint.next=prePoint;
// curPoint和prePoint分别向后指向一位
prePoint = curPoint;
curPoint = next;
}
return prePoint;
}
}