美文网首页
单向链表-链表反转

单向链表-链表反转

作者: 今年花开正美 | 来源:发表于2020-05-25 22:51 被阅读0次

最近在并行复习数据结构与算法的知识,为了加强掌握,就把做题思路用画图的方式记录下来。今天是第一篇,常见的问题:链表反转,题目就不再阐述了。

实现思路

链表反转.png

大致说明:
1.为了简化对边界的判断,加入了哨兵节点,哨兵节点固定,随着节点不断移动,哨兵节点的next时刻指向最新的头节点。
2.实现的核心思路就是不断的移动初始头节点,将P节点的next节点设置为新的头节点,同时P节点的next节点指向原来的next的next节点。
3.每次循环都将P节点的后一个节点放到头部节点,最终当P节点的next为null时,链表就已经完全反转了。
4.最后,我们只要返回哨兵节点的next节点即可。

实现代码

public ListNode reverseList(ListNode head){
        if(null == head || null == head.next){
            return head;
        }

        ListNode P = head;
        //哨兵节点
        ListNode serHead = new ListNode(-1);
        serHead.next = head;

        while (P.next != null){
            ListNode temp = P.next;
            P.next = P.next.next;
            temp.next = serHead.next;
            serHead.next = temp;
        
        return serHead.next;
 }

相关文章

  • 数据结构 - 单向链表及相关算法

    单向链表 链表常见算法 链表反转

  • 单向链表算法

    单向链表 反转单向链表 单链表查找倒数第k个节点 单链表递归倒序打印 单链表排序 单链表删除重复节点

  • 数据结构-链表

    相关掌握点 单向链表 双向链表 反转单向链表 判断链表是否含有环 链表构建 链表是一种线性结构,是通过指针引用节点...

  • reverse linked list

    反转单向链表 demo 运行效果

  • 链表反转

    概述 链表反转是非常经典的面试题,要实现此功能,需先实现链表的数据结构。 链表类 获得单向链表方法 输出单向链表方...

  • 数据结构专题:1.单向链表反转与排序

    有如下单向链表 1.单向链表反转,递归 递归的方式其实是从尾节点开始进行指针反转,最终递归反转到头节点 2.单向链...

  • 单向链表-链表反转

    最近在并行复习数据结构与算法的知识,为了加强掌握,就把做题思路用画图的方式记录下来。今天是第一篇,常见的问题:链表...

  • 链表 - 单向链表反转

    反转一个单链表。输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL 图解...

  • 链表常见问题

    反转单向链表思路使用一个临时节点当做缓冲节点,通过绕圈完成反转 反转部分链表题:给定一个链表,及反转的范围,完成反...

  • 链表

    链表 单链表反转链表中环的检测两个有序链表合并删除链表倒数第n个节点求链表的元素总个数 一.单向链表 链表共有特征...

网友评论

      本文标题:单向链表-链表反转

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