。。。剑指Offer之——反转链表。。。
1 public ListNode ReverseList(ListNode head) { 2 if (head == null) { 3 return null; 4 } 5 if (head.next == null) { 6 return head; 7 } 8 // q表示前面一个节点指针 9 // p表示当前一个节点指针 10 // r表示后面一个节点指针 11 ListNode q = null, p = head, r = p.next; 12 // 如果当前节点p不为空 13 while (p != null) { 14 p.next = q;//指向前面一个节点 15 q = p;//前面一个节点往后移动 16 p = r;//当前节点往后移动 17 if (r != null) {//最后一轮,r为空,不要再往后移动 18 r = r.next;//后面一个节点往后移动 19 } 20 } 21 // 循环结束时,q是原来的最后一个节点,也就是反转之后的头节点 22 head = q; 23 return head; 24 }

更多精彩