当前位置: 首页 > news >正文

初阶数据结构习题【6】(3顺序表和链表)—— 206. 反转链表

1. 题目描述

力扣在线OJ—— 206. 反转链表
给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。

示例 1:
在这里插入图片描述
输入:head = [1,2,3,4,5]
输出:[5,4,3,2,1]

示例2
在这里插入图片描述
输入:head = [1,2]
输出:[2,1]

示例3
输入:head = []
输出:[]

2. 思路

思路1
在这里插入图片描述

思路2
取原节点到新链表,不创建新链表,保存下一个节点,完成头插。然后继续下一个
在这里插入图片描述

3. 代码实现

思路1代码实现

struct ListNode* reverseList(struct ListNode* head) {
      if(head == NULL)
    {
        return NULL;
    }
    struct ListNode*  n1,*n2,*n3;
    n1 = NULL;
    n2 = head;
    n3 = n2->next;
  
    while(n2)
    {
        //反转
        n2->next = n1;
        //下一步迭代
        n1 = n2;
        n2 = n3;
        if(n3)
        {
            n3 = n3->next;
        }
    }
    return n1;
}

在这里插入图片描述

思路2代码实现

struct ListNode* reverseList(struct ListNode* head) {
    if (head == NULL) {
        return NULL;
    }

    struct ListNode *cur, *newhead;
    cur = head;
    newhead = NULL;
    while (cur) {
        struct ListNode* next = cur->next;

        // 头插
        cur->next = newhead;
        newhead = cur;
        cur = next;
    }
    return newhead;
}

在这里插入图片描述

相关文章:

  • 大模型——基于 DIFY 的自动化数据分析实战
  • 文件魔数与其他特征:揭开文件识别的神秘面纱
  • 深入理解指针与回调函数:从基础到实践
  • 【华为】查看防火墙会话表命令
  • 服务器时间同步
  • 覆盖率记录, 非cross bin
  • Kafka底层结构
  • 使用winlogbeat采集windows日志
  • 《 C++ 点滴漫谈: 二十九 》风格 vs. C++ 风格:类型转换的对决与取舍
  • 解锁智能变革密码:浙江大学2025年DeepSeek行业应用案例集深度解析
  • x 的平方根
  • Qt开发⑪Qt网络+Qt音视频_使用实操
  • HTTP超文本传输协议
  • 排序算法——快速排序
  • 探秘基带算法:从原理到5G时代的通信变革【一】引言
  • Unity 打包后EXE运行出现Field to Load il2cpp的一种情况
  • 《解锁HarmonyOS NEXT高阶玩法:艺术图像识别功能开发全攻略》
  • 打造高清3D虚拟世界|零基础学习Unity HDRP高清渲染管线(第一天)
  • 【JAVA面试题】== 和 equals() 的区别与使用场景
  • Aria Gen 2来了!AI感知、机器人、可穿戴计算的新突破
  • 游客称在网红雪山勒多曼因峰需救援被开价2.8万,康定文旅:封闭整改
  • “仓促、有限”,美英公布贸易协议框架,两国分别获得了什么?
  • 国博馆刊|北朝至唐初夏州酋豪李氏家族的发展与身份记忆
  • 中科院院士魏辅文已卸任江西农业大学校长
  • 国务院安委会办公室印发通知:坚决防范遏制重特大事故发生
  • 国铁集团:铁路五一假期运输收官,多项运输指标创历史新高