示例:
思路:
利用两个指针,第一个指针叫 pre,最初是指向 null。
第二个指针 cur 指向 head,然后不断遍历 cur。
每次迭代到 cur,都将 cur 的 next 指向 pre,然后 pre 和 cur 后移一位。
都迭代完了(cur 变成 null 了),pre 就是最后一个节点了。
代码实现:
class Solution {
public ListNode reverseList(ListNode head) {
if(head == null){
return null;
}
//定义节点,pre和 cur,pre指向null
ListNode pre = null;
ListNode cur = head;
while(cur != null){
//记录当前节点的下一个节点,用于后移
ListNode next = cur.next;
//然后将当前节点指向pre
cur.next = pre;
//pre和cur节点都后移一位
pre = cur;
cur = next;
}
return pre;
}
}