美文网首页
《剑指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