206. 反转链表
传送门
代码
class Solution {
public ListNode reverseList(ListNode head) {
ListNode cur = head,pre = null;
while(cur != null) {
ListNode tmp = cur.next;
cur.next = pre;
pre = cur;
cur = tmp;
}
return pre;
}
}
思路
cur 代表当前节点,pre代表上一个节点
主要思想就是把 cur 的 next 指针指向 pre 即可
然后依次向后移动 cur 和 pre 使,cur 到原链表的下一个节点,pre 到刚才 cur 所指向的位置
因为这个移动的过程,必须要保存原链表的节点,否则 cur next 指向前面的 pre 之后,原链表丢失
所以必须要一个 tmp 节点,用来保存原链表的结构