剑指offer:反转链表

题目描述

输入一个链表,反转链表后,输出新链表的表头。

解题思路

头插法,利用两个node(cur、next),一个记录当前处理的节点,一个记录当前节点的下一个节点,防止链表丢失。改变链表的指向顺序,最后一个插入链表的数据就是表头。

public class Solution {
    public ListNode ReverseList(ListNode head) {
        //head初始指向链表头节点
        if(head == null){	//链表为空
            return null;
        }
        ListNode cur = null; //记录当前节点
        ListNode next = null;//记录后继节点
        while(head != null){ 
            next = head.next; //①记录头节点的后续节点
            head.next = cur; //②当前节点的后继节点指向上一个处理的节点
            cur = head; //③记录当前节点
            head = next; //④head指向后继节点
        }
        return cur;
        
    }
}
posted @ 2020-03-04 17:19  灵图  阅读(78)  评论(0)    收藏  举报