题目描述
定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。
示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
0 <= 节点个数 <= 5000
leetcode :反转链表
解题思路
设置两个指针,一个指向当前 cur ,一个指向当前的上一个 pre ,当 cur 所指不为 null 时,两个指针在链表上都往后走一步,对应操作为:pre = cur;cur = cur.next;接着将 pre 指向的节点与已经反转好的部分相连接:pre.next = reversedHead;
并将已反转链表的头节点更新:reversedHead = pre; 当 cur 为 null 时说明已经到原链表的末尾,此时结束循环,返回头节点。