剑指offerJZ15——反转链表。leetcode206.反转链表

反转一个单链表。

示例:

输入: 1->2->3->4->5->NULL

输出: 5->4->3->2->1->NULL

 

解题思路:双指针迭代。(如图head节点当成链表的第一个节点就好了,画的时候想的还不够清楚)

实现代码:

//双指针迭代法
    public ListNode reverseList(ListNode head) {
        ListNode previous = null;
        ListNode current = head;
        while (current != null){
            //记录当前节点的下一个节点
            ListNode temp = current.next;
            //将当前节点指向previous,相等与把当前节点反转
            current.next = previous;
            //分别前进一个节点
            previous = current;
            current = temp;
        }
        //最后previous指向原链表的最后一个节点,反转后的第一个节点
        return previous;
    }
posted @ 2020-07-18 23:02  硬盘红了  阅读(91)  评论(0编辑  收藏  举报