美文网首页
《剑指offer第二版》面试题24:反转链表(java)

《剑指offer第二版》面试题24:反转链表(java)

作者: castlet | 来源:发表于2020-04-04 12:54 被阅读0次

    题目描述

    定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头节点。

    解题思路:

    1. 定义两个指针preNode和nextNode,preNode表示反转链表的头节点,nextNode表示还未反转的链表的头结点。
    2. 当反转一个节点时候,同时更新preNode和nextNode即可。

    代码

    ListNode revertList(ListNode head) {
        if (head == null) {
            return null;
        }
    
        ListNode preNode = null;
        ListNode curNode = head;
        ListNode nextNode = null;
        while (curNode != null) {
            nextNode = curNode.next; // 还未反转的链表的头结点
            curNode.next = preNode;
            preNode = curNode;       // 已反转的链表的头结点
            curNode = nextNode;
        }
        return preNode;
    }
    

    相关文章

      网友评论

          本文标题:《剑指offer第二版》面试题24:反转链表(java)

          本文链接:https://www.haomeiwen.com/subject/bzadphtx.html