题解 | #反转链表#
反转链表
https://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca
class Solution { public ListNode ReverseList(ListNode pHead) { if(pHead == null) // 确保输入不为空 return null; ListNode temp = null; // 中间保存变量 ListNode reversedHead = null; // 输出标量 ListNode currentListNode = pHead; // 当前链表节点,初始时为首元节点 ListNode previousListNode = null; // 先前链表节点 // 对链表进行循环,当前链表节点存储数据为null停止 while (currentListNode != null) { temp = currentListNode.next;// 存储链表下一个节点数据 currentListNode.next = previousListNode;// 更新链表下一个数据,指向链表前一个节点数据,将null值插入该链表中 if(temp == null) // 当链表循环一遍过后,temp将变为零,此时可以得到反转后的链表 reversedHead = currentListNode; previousListNode = currentListNode; // 更新先前链表阶段,进1 currentListNode = temp; // 更新链表当前数据,链表节点前进1 } return reversedHead; } }