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

单链表相关面试题--2.反转一个单链表

/*
解题思路: 此题一般常用的方法有两种,三指针翻转法和头插法
1. 三指针翻转法
   记录连续的三个节点,原地修改节点指向
2. 头插法
   每一个节点都进行头插
*/
// 三个指针翻转的思想完成逆置
struct ListNode* reverseList(struct ListNode* head) {
    if(head == NULL || head->next == NULL)
        return head;
    
    struct ListNode* n1, *n2, *n3;
    n1 = head;
    n2 = n1->next;
    n3 = n2->next;
    n1->next = NULL;
    //中间节点不为空,继续修改指向
    while(n2)
    {
        //中间节点指向反转
        n2->next = n1;
        //更新三个连续的节点
        n1 = n2;
        n2 = n3;
        if(n3)
            n3 = n3->next;
    }
    //返回新的头
    return n1;
}

// 取节点头插的思想完成逆置
struct ListNode* reverseList(struct ListNode* head) {
    struct ListNode* newhead = NULL;
    struct ListNode* cur = head;
    while(cur)
    {
        struct ListNode* next = cur->next;
        //头插新节点,更新头
        cur->next = newhead;
        newhead = cur;
        cur = next;
    }
    
    return newhead;
}

 


http://www.kler.cn/a/135175.html

相关文章:

  • windows及linux 安装 Yarn 4.x 版本
  • 如何评价deepseek-V3 VS OpenAI o1 自然语言处理成Sql的能力
  • 【钉钉在线笔试题】字符串表达式的加减法
  • 使用docker-compose安装Redis的主从+哨兵模式
  • CES 2025|美格智能高算力AI模组助力“通天晓”人形机器人震撼发布
  • 【MySQL 保姆级教学】用户管理和数据库权限(16)
  • 深入理解MongoDB的CRUD操作
  • 五分钟,Docker安装kafka 3.5,kafka-map图形化管理工具
  • Golang中读写CSV文件的全面指南
  • 和鲸科技创始人范向伟受邀出席“凌云出海,来中东吧”2023华为云上海路演活动
  • NX二次开发UF_CAM_ask_cutter_db_object 函数介绍
  • CDN加速在社会发展中的挑战与机遇
  • 【Machine Learning in R - Next Generation • mlr3】
  • PDF/X、PDF/A、PDF/E:有什么区别,为什么有这么多格式?
  • 树莓派4b编译FFmpeg支持硬件编解码
  • 极智嘉(Geek+)官宣重磅合作伙伴,再度赋能仓储自动化解决方案落地
  • 查询数据库DQL
  • 不爱的人在一起会幸福吗
  • 网络安全(大厂面试真题集)
  • JOSEF 同步检查继电器 JT-1 额定电压100V 柜内固定安装,板前接线
  • List 函数排序操作,用对方法事半功倍!
  • 【Linux】-进程间通信-命名管道文件(没有关系的进程间进行通信),以及写一个日志模板
  • VSCode打开Json 文件格式化
  • CDN的发展和作用。当前网站被攻击适用什么样的CDN。
  • websocket详解
  • 一图多码如何分解?快速做二维码解码的方法