剑指offer---15---反转链表

 
 
题意
输入一个链表,反转链表后,输出链表的所有元素。
 
 
分析
反转链表
 
 
 
代码 
/*
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 || head.next==null)return head;
        //至少有两个点的时候才能够翻转整个链表
        ListNode first = head;
        ListNode next = head.next;
        first.next = null;
        //保留这么一个状态:first及之前都是修改好的,next指向后面没修改过的。
        //进来先保存next的后面那些部分,将next去指向first
        while(next != null){
            ListNode temp = next.next;
            next.next = first;
            first = next;
            next = temp;
        }
        return first;
    }
}
posted @ 2018-07-27 13:17  buptyuhanwen  阅读(77)  评论(0编辑  收藏  举报