ni

举一反三:

学习完本题的思路你可以解决如下题目:

BM2.链表内指定区间反转

BM3.链表中的节点每k个一组翻转

思路:

将链表反转,就是将每个表元的指针从向后变成向前,那我们可以遍历原始链表,将遇到的节点一一指针逆向即可。指针怎么逆向?不过就是断掉当前节点向后的指针,改为向前罢了。

cur.next = pre

具体过程:

  • step 1:优先处理空链表,空链表不需要反转。

  • step 2:我们可以设置两个指针,一个当前节点的指针,一个上一个节点的指针(初始为空)。

  • step 3:遍历整个链表,每到一个节点,断开当前节点与后面节点的指针,并用临时变量记录后一个节点,然后当前节点指向上一个节点,即可以将指针逆向。

  • step 4:再轮换当前指针与上一个指针,让它们进入下一个节点及下一个节点的前序节点。

图例:

alt

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务