单链表反转
解题思路
对单链表的操作,基本上都是遍历单链表,然后在遍历过程中进行操作。
单链表遍历框架
为了更方便的进行删除操作,我们新增一个pred指针,表示遍历指针的前一个指针。主要遍历curr指针,curr作为主要指针,pred作为辅助指针。
ListNode prev = null;
ListNode curr = head;
while (curr != null) {
// 反转 prev 和 curr 之间的指针
prev = curr;
curr = curr.next;
}
单链表反转的实现
先套用单链表遍历框架。如下:
ListNode prev = null;
ListNode curr = head;
while (curr != null) {
// 反转 prev 和 curr 之间的指针
prev = curr;
curr = curr.next;
}
我们要做的是遍历过程中对指针进行反转处理。
ListNode prev = null;
ListNode curr