
今天小编要跟大家一起学习的是力扣网站上第206道算法题 名字叫反转链表 小编会把自己的解题思路和作图过程一一给大家展示 希望对大家会有所帮助。一、原题展示题目很好理解就是要把原链表反转一下输出出来。二、思路讲解这里小编设了三个变量L1 L2 L3 。L1设为NULL L2指向原链表的头结点 L3指向L2的下一个结点为了手牵手。读到这里相信大家还是会有很多疑惑 接下来我会以图文搭配的方式为大家展示。这里我们就完成了前期准备工作。L3在哪里别着急我会把它放到循环里因为它要时时刻刻的连着L2的下一个结点。L3的作用来了它的目的就是把L2-next的这个值先记住以防待会儿要改L2-next的地址时原先的值找不到了被覆盖了。现在我们就可以放心大胆的把L2-next的值传给L1了。此刻它就变为NULL了就相当于我们目标链表的尾结点了。接下来就是把L2的位置传给L1L3的位置传给L2。之后就进入while循环一直往下走。注意这里小编踩过一个坑 希望大家直接跳过去。就是顺序不能颠倒 必须先传L2再传L3 不然L1的位置就直接跳到L3了。到这里我们的目的就已经快要达成了。到这里我们的反转链表就已经完成了 这里新的表头就是L1 L2就从原先的表头变为NULL这里完全就可以让L2作为我们循环结束的标志 只要L2为NULL就跳出循环。当然这里还有一个特殊情况 当原链表为NULL时 反转链表和原链表相同 直接返回原链表就可以啦。三、代码展示希望这道算法题小编的思路对大家会有所帮助 接下来小编会持续为大家带来更多精彩内容。