剑指offer16,反转链表(Java实现)

如果有不对的地方请发邮件到[email protected]。若是不太明白思路或者过程也可发邮件给我,谢谢支持。

/**
 * 题目:反转单向链表
 * 描述:定义一个函数,输入一个链表的头结点,反转该链表并输出 反转后的头结点

    具体思路看注释!!!
 * @author lenovo047
 *
 */
public class test16 {
    public static ListNode ReverseList(ListNode head) {
        if(head == null){
            return null;
        }
        
        ListNode next = null;
        ListNode pre = null;
        while(head != null){
            next = head.next;  //反转之前当前头结点的下一个结点,先存起来,一会反转之后就找不到了
            head.next = pre;   //反转,指针指向了前方
            pre = head;  //向后移动
            head = next;  //向后移动
        }
        return pre;//注意返回的是哪个结点

    }

}
 

你可能感兴趣的:(剑指offer)