题解 | #反转链表#

反转链表

https://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca

/*
public class ListNode {
    int val;
    ListNode next = null;

    ListNode(int val) {
        this.val = val;
    }
}*/
public class Solution {
    public ListNode ReverseList(ListNode head) {
	  	// 排除异常情况, 空链表
        if (head == null) return null;
	    /*
        	需要的辅助变量:cur,next
        	cur指向即将被倒叙插入的数据元素,next为了临时保存原链表下一个元素的地址,
        	为了能找到下一个元素,不然直接更改cur.next可能会丢失后边的元素
        	另外,由于第一个节点就存放数据,因此需要对第一个节点进行特殊处理,
        	不要把特殊情况放到循环中,否则会让程序难以理解
        	
        	对第一个节点的处理,注意要将next赋值为null
        */
        ListNode list = null;
        ListNode cur = null;
        ListNode next = null;
        cur = head.next;
        list = head;
        list.next = null;
        while (cur != null) {
            next = cur.next;
            cur.next = list;
            list = cur;
            cur = next;
        }     
        return list;
    }
}

全部评论

相关推荐

头顶尖尖的程序员:我也是面了三四次才放平心态的。准备好自我介绍,不一定要背熟,可以记事本写下来读。全程控制语速,所有问题都先思考几秒,不要急着答,不要打断面试官说话。
点赞 评论 收藏
分享
Lorn的意义:1.你这根本就不会写简历呀,了解太少了 2.你这些项目经历感觉真的没啥亮点啊,描述的不行,重写书写一下让人看到核心,就继续海投 注意七八月份ofer还是比较多的,越往后机会越少,抓住时机,抓紧检查疏漏,加油查看图片
点赞 评论 收藏
分享
07-15 11:41
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务