一.题目
给你单链表的头节点 head
,请你反转链表,并返回反转后的链表。
提示:
- 链表中节点的数目范围是
[0, 5000]
-5000 <= Node.val <= 5000
解析:设置3个虚拟节点pre为空,p点为头结点,next为头结点的下一个节点。将p节点的下一个节点指向pre,将pre移动到p的位置,p点移动到next位置,next再往后移动一个位置,以此类推,直到p点不存在(p==nullptr)。此时,pre在链表的最后位置,return pre->next即可。
注意:1.此题示例3,还应判空。
2.next移动过程中,应加入前提if(next),因为next先为空,想访问成员变量没有空间。
实现过程如下:
代码实现: