题解 | #反转链表#
反转链表
http://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca
反转列表:
思路:经典解法是用一个双链表,也就是摘掉原链表中的head节点之后,将其挂在新链表的第一个节点。pre初始化为新链表的第一个节点为null,p为需要摘掉的head节点的下一个节点,用来索引位置。
代码
public class Solution {
public ListNode ReverseList(ListNode head) {
// 初始化pre指针,用于记录当前节点的前一个节点地址
ListNode pre = null;
// 初始化p指针,用于记录当前节点的下一个地址地址
ListNode p = null;
// head指向null时,循环终止
while(head != null){
p = head.next;
head.next = pre;
pre = head;
head = p;
}
return pre;
}
}