/* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } }*/ public class Solution { public ListNode ReverseList(ListNode head) { ListNode first = new ListNode(0); //生成一个头结点 ListNode p=head; //引用p指向head ListNode q=null; //引用q初始化为null while(p != null) { //当引用p没有到达链表末尾 q=p.next; //q指向p的下一个节点 p.next=first.next; //用头插法逐个插入每个节点 first.next=p; p=q; //p指向下一个节点 } return first.next; //返回逆序的链表 } }