1. 反转链表
https://leetcode.cn/problems/reverse-linked-list/description/
题目:

看到这个题目的时候我们怎么去想呢?如果我们反应快的话,应该可以想到我们可以从 1 遍历到 5 然后依次头插,但是其实我们还有更好的办法,就是利用三个指针,如何使用呢?

// 反转链表 OJ 假如结构体已经给出
typedef struct ListNode SL;
SL* reverseList(SL* head) {
// 处理空链表
if (head == NULL) {
return head;
} else {
// 创建三个指针
SL* n1, n2, n3;
n1 = NULL, n2 = head, n3 = n2->next;
while (n2) {
n2->next = n1;
n1 = n2;
n2 = n3;
if (n3) {
n3 = n3->next;
}
}
return n1;
}
}

2. 链表的中间结点
https://leetcode.cn/problems/middle-of-the-linked-list/description/
题目:这个题目就是在一个链表中我们要返回中间结点,如果中间结点有两个的话就返回第二个结点。









