力扣206题 反转链表
给你单链表的头节点 head
,请你反转链表,并返回反转后的链表
第一种方法:迭代法
这道题代码很简单,主要的难点在于思想很绕。我详细记录一些,
我们假设一个链表1->2->3->null
- 首先,执行第1行代码(这里对于我代码里的标注),新建一个pre结点为null
- 然后,执行2,while循环,head现在指向链表中的“1”,开始进入循环
- 执行3,创建一个结点temp,并且把head->next(现在代表“1”里面的指针,指向的是“2”)赋给temp,其实就是现在temp指向的是链表中的“2”
- 执行4,把pre赋给head->next,其实就是head->next(现在 代表“1”里面的指针,指向“2”),现在指向null
- 执行5,把head赋给pre,也就是pre现在指向是“1”
- 执行6,把temp赋给head,也就是head现在指向是“2”
- 跳到2继续循环,满足while条件,进入循环
- 执行3,把head->next(现在代表“2”里面的指针,指向的是“3”)赋给temp,其实就是现在temp指向的是链表中的“3”
- 执行4,把pre