题目(反转链表)
题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。
算法思路
要想反转链表,我们自然会想到改变节点指针的指向为指向它之前的节点,因此,我们需要一个能够记录前驱节点的指针。但是这样一来会导致和它原先连接的链表断开,为了能够继续改变下一节点的指针指向,我们需要用后继指针记录当前节点的下一节点,以便当前节点指针变向后,它可以根据后继指针顺利找到到下一个节点,然后再执行指针变向,以此进行下去,直到当前节点的下一节点为空时,即到达链表表尾,返回当前节点即为反转后链表的头结点。
算法实现

复杂度分析
代码只线性遍历链表,因此时间复杂度为 O(n),空间复杂度 O(1)。
参考
<<剑指offer2>>