【大厂高频算法题】反转链表
题目:给定一个单链表的头结点pHead,长度为n,反转该链表后,返回新链表的表头。 难度:简单
代码:
class Solution {
public ListNode ReverseList(ListNode head) {
if (head == null) {
return null;
}
ListNode pre = null;
ListNode next = null;
while (head != null) {
// 先记录当前节点的下一个节点
next = head.next;
// 修改当前节点的下一个节点的值
head.next = pre;
// 记录前一个节点的值
pre = head;
// 往下走一步
head = next;
}
// 返回的这个是反转后的头结点,反转后它从上一个结点变成了后一个结点,最终变成了开头
return pre;
}
}