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 }

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。