美文网首页数据结构与算法
剑指 Offer 24 反转链表

剑指 Offer 24 反转链表

作者: itbird01 | 来源:发表于2021-12-05 00:11 被阅读0次

剑指 Offer 24. 反转链表

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

解题思路

解法:
1.用哑结点的技巧来实现不借助其他数据结构实现,链表翻转
2.声明哑结点
3.先将哑结点的下一节点临时保存一下,然后将哑结点的下一节点指向目前遍历到的最新值
4.将head节点往后移一位置
5.将哑结点,与之前临时保存下来的链表结合
6.哑结点第一位为我们开头添加的,需要跳过,所以node.next即为我们所求的翻转链表

解题遇到的问题

后续需要总结学习的知识点

##解法1
class Solution {
    public ListNode reverseList(ListNode head) {
        // 声明哑结点
        ListNode node = new ListNode(0);
        ListNode tempListNode;
        while (head != null) {
            // 先将哑结点的下一节点临时保存一下
            tempListNode = node.next;
            // 将哑结点的下一节点指向目前遍历到的最新值
            node.next = new ListNode(head.val);
            // 将节点往后移一位置
            head = head.next;
            // 将哑结点,与之前临时保存下来的链表结合
            node.next.next = tempListNode;
        }
        // 哑结点第一位为我们开头添加的
        return node.next;
    }

    public class ListNode {
        int val;
        ListNode next;
        ListNode(int x) {
            val = x;
        }
    }
}

相关文章

网友评论

    本文标题:剑指 Offer 24 反转链表

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