美文网首页程序员
[算法之链表]-反转单链表

[算法之链表]-反转单链表

作者: 凡毓不凡 | 来源:发表于2020-05-12 16:21 被阅读0次
  • 链表是一种数据结构,应用在很多场景中,如 JDK1.8 中得HashMap,ConcurrentHashMap等集合类中
  • 本文旨在以通俗得方式讲解高频面试题:反转单链表
  • 通常来说对于得链表得操作有递归、迭代等方式,本文将通过迭代得方式做讲解
图片来自CSDN,若涉及到侵权,请联系作者删除
public class Solution{
    public ListNode  reverse(ListNode head){
        if(head==null || head.next==null)  return head;
        // p指的是反转之后得新链表
        ListNode p =null;
        // head得下一个节点
        ListNode q =null;    
        while(head!=null){
            q = head.next; // 始终保持head得下一个位置给q  (1)
            head.next = p; // 将head下一个节点得指针指向p(将head从原先得链表中剥离出去  (2))
            p = head;// 将head得位置给到p(将head替换为p  (3))
            head = q ; // 将q得位置给到head(又回到最初得链表结构,但是此时链表得头节点以及移到 另一个链表p上了  (3))
        }
        return p;
    }
}

@Data
class ListNode {
    int val;
    ListNode next;

    ListNode(int x) {
        val = x;
    }
}

时间复杂度:由于需要遍历整个链表来逆序,所以时间复杂度为 O(n)
空间复杂度:由于没有开辟额外得内存空间,所以空间复杂度为 O(1)

  1. ☛ 文章要是勘误或者知识点说的不正确,欢迎评论,毕竟这也是作者通过阅读源码获得的知识,难免会有疏忽!
  2. 要是感觉文章对你有所帮助,不妨点个关注,或者移驾看一下作者的其他文集,也都是干活多多哦,文章也在全力更新中。
  3. 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处!

相关文章

  • Algorithm小白入门 -- 单链表

    单链表递归反转链表k个一组反转链表回文链表 1. 递归反转链表 单链表节点的结构如下: 1.1 递归反转整个单链表...

  • 单链表反转问题

    基本问题 如何将单链表反转? 单链表结构定义 算法实现 进阶问题 如何将单链表在指定区间内进行反转? 问题分析 这...

  • 单链表

    单链表一些相关的算法集锦,单链表的算法可以提高逻辑能力。 反转链表 最基本的链表的题目,很简单的迭代操作,需要注意...

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

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

  • 链表算法之-单链表反转

    算法解析:创建pre节点和temp节点,让temp节点记录当前p几点的下一个节点,然后将当前节点指向下一节点的键断...

  • [算法之链表]-反转单链表

    链表是一种数据结构,应用在很多场景中,如 JDK1.8 中得HashMap,ConcurrentHashMap等集...

  • 单链表反转

    单链表 单链表反转 递归方法

  • Java、Python3 实战 LeetCode 高频面试之单链

    单链表反转 单链表反转这道题可谓是链表里面的高频问题了,差不多可以说只要被问到链表,就会问单链表反转。 今天我们就...

  • 链表简单算法相关练习

    单链表反转: 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 迭代方式实现: 复杂度分析: 时...

  • 5个链表的常见操作

    链表 链表反转 LeetCode206:给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 环路检...

网友评论

    本文标题:[算法之链表]-反转单链表

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