public ListNode ReverseList(ListNode head) {
if(head == null) return null; //若为空链表,直接返回空
ListNode newHead = null;
ListNode cur = head;
ListNode tmp = null;
ListNode pre = null;
while(cur != null) {
tmp = cur.next;
cur.next = pre;
if(tmp==null) newHead = cur;
pre = cur;
cur = tmp; //进入下一个结点
}
return newHead;
}
思路:定义前结点a、当前结点b、作为中间变量的结点c
①c保存b的下一结点
②让a作为b的下一结点
③a、b向后移一个结点
④回到①
结束条件:当前结点为空(到达链表的尾)