不使用stack的方法,通过三个变量实现链表倒置

/*
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 pre=head,mid=head.next,beh=head.next.next;
        //pre代表前一个,mid代表中间的,beh代表后一个
        pre.next=null;//倒置后为最后一个节点,下一跳为null
        while(mid!=null){//中间的mid为null时说明到最后了
            beh=mid.next;//beh的指针后移
            mid.next=pre;//改变指针朝向
            pre=mid;//pre指针后移
            mid=beh;//mid指针后移
        }
        return pre;
    }
}