LC 92 206 24

链表逆序问题, 206是个简单的从头到尾的逆序,92是部分逆序

问题的关键是注意null。

206中要注意head最后后面的next应该是null

可以的做法是prev设定为null, 相当于设定了一个为null的假头 (第一遍的做的时候手动做了这件事情,然后从第二个节点开始逆序了,感觉有点蠢)

92的要注意到一个case是m小于等于n,虽然这道题并不影响。第一次写没注意到这点,直接就设定prev是start的next cur是start的nextnext了。

如果出现m=n=length那么start.next.next是null。虽然这题并不影响,因为m-n=0直接跳出循环了,但是还是注意一下。

链表题包括 树类的题要多注意null!不能逻辑对了就觉得对了。

当然还可以写成recursive。虽然我不知道又占空间,还很别扭的递归方法有啥用=-=

程序停止的条件: 熟悉head为空return 空,上来第一条写的没毛病。

然后递归搜索的终止条件,搜到表尾,也就是head.next = null

然后首先递归搜索 head.next

然后回溯 head.next.next = head 本来是自己的后置节点变成自己的前置节点。

然后head.next = null 其实是对每个节点都做了这件事情,但是因为只有原来的头节点没有前置节点,所以只是为头节点设置了后置节点为null

24算是逆序的一个应用

一对对 逆序

results matching ""

    No results matching ""