/* 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 cur=head.next; ListNode pre=head; while(cur.next!=null){ ListNode temp=cur.next; cur.next=pre; pre=cur; cur=temp; } head.next=null; cur.next=pre; return cur; } } //用两个指针,一个指针pre指向cur指针的前一个节点,然后创建一个临时指针保存cur的下一个节点,将cur.next指向pre实现局部反转,而后将pre和cur指针都后移一个节点,关键在最后要将head.next断开,不然局部成环,还要将cur.next指向pre;