反转链表

题目描述
输入一个链表,反转链表后,输出新链表的表头。

分析:定义当前节点的前节点pre,和当前节点的后节点next,完成反转,即从head->next,到head->pre。

我的Code如下:

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

    ListNode(int val) {
        this.val = val;
    }
}*/
public class Solution {
    public ListNode ReverseList(ListNode head) {
        ListNode pre = null;
        ListNode next = null;
        while(head!=null){
            //保存head的next节点,避免丢失
            next = head.next;
            //让当前节点head指向前面节点pre
            head.next = pre;
            //上述操作已完成最重要的反转
            //然后,前面的节点pre后移一位,head节点也后移一位
            pre = head;
            head = next;
        }
        return pre;
    }
}

你可能感兴趣的:(反转链表)