【剑指offer】反转链表

反转链表

http://www.nowcoder.com/questionTerminal/75e878df47f24fdc9dc3e400ec6058ca

题目描述
输入一个链表,反转链表后,输出新链表的表头。
1、思路分析
为保证思路的完整性,一开始需考虑特殊情况,即链表结点为空或者只有头结点的时候,直接返回链表本身。初始思路我想用三个指针分别前一个、当前和下一个结点,其实通过移动head可以充当当前指针,因此我们再另外新建pre、next两个指针即可。再在while循环中交换三个指针指向的下一个指针位置,这与交换两个数字的思路比较像,需要预先存储即将被改变的,以免被覆盖。最后返回pre指针即可。
2、代码

public class Solution {
    public ListNode ReverseList(ListNode head) {
        if(head == null || head.next == null) return head;
        ListNode pre = null;
        ListNode next = null;
        while(head != null) {
            next = head.next;
            head.next = pre;
            pre = head;
            head = next;
        }
        return pre;
    }
}
全部评论

相关推荐

02-01 19:48
门头沟学院 Java
神哥了不得:(非引流)直接暑期吧,没时间日常了,老鱼简历把水印去了,或者换个模板,简历字体大小都不太行,建议换2个高质量的项目,面试应该还会再多一些
点赞 评论 收藏
分享
02-11 17:47
已编辑
门头沟学院 Java
神哥不得了:神哥来啦~建议先在网上找一些高频的八股去背,然后再去广泛的背八股,这样的学习会更有效率一些,简历的这两个项目建议换掉,换成两个高质量的项目,这样的话获得面试的比例会更高一点,专业技能的话排版要注意一下,要加句号的话就都加,要不加就都不加,荣誉奖项的话写在教育经历里边吧,这个确实没有太多的含金量
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务