题解 | #反转链表#
反转链表
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; } }