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

链表面试题目:反转一个单链表的两种方法(解析+代码)

我们继续来看一下单链表的题目和代码吧,把学习的知识运用到实际中,大家加油


先看OJ题目

OJ题目(反转单链表)

双指针法 

1.创建两个指针,为pre curr,curr指向头结点,curr用来遍历链表

2.curr指向下一个结点,要让这个结点的next 指向pre,当然我们首先要保存curr的next指针,保存在temp中,以免找不到

3.采用循坏的时候记得更新指针

 代码

struct ListNode* reverseList(struct ListNode* head) {struct ListNode*curr=head;struct ListNode*pre=NULL;while(curr){struct ListNode*temp=curr->next;curr->next=pre;pre=curr;curr=temp;}return pre;
}

递归法

思想和双指针的一样,但是采用了递归的形势

 代码:

struct ListNode* reverse(struct ListNode* curr, struct ListNode* prew) {if (!curr) {return prew;}struct ListNode* temp = curr->next;curr->next = prew;return reverse(temp, curr);
}
struct ListNode* reverseList(struct ListNode* head)
{return reverse(head, NULL);
}

希望对你有所帮助,希望可以收到一个赞呀~~

http://www.lryc.cn/news/343458.html

相关文章:

  • [C++][数据结构]AVL树插入的模拟实现
  • 力扣每日一题108:将有序数组转换为二叉搜索树
  • 保护公司机密:避免员工带着数据说拜拜
  • kali apt update报错
  • 7-1 图图图
  • Java(多线程)
  • 程序员必备的7大神器,效率飞起!
  • 揭秘文件加密利器:24年度最值得信赖的5大加密软件评测
  • 【仪酷LabVIEW AI工具包案例】使用LabVIEW AI工具包+YOLOv5结合Dobot机械臂实现智能垃圾分类
  • 鸿蒙应用开发系列 EX篇:HarmonyOS应用开发者基础认证
  • 基于Linux中的 进程相关知识 综合讲解
  • 前端高频面试题 5.08
  • python 的继承、封装和多态
  • 数智结合,智慧合同让法务管理发挥内在价值
  • Ubuntu 安装docker
  • 【北京迅为】《iTOP-3588开发板快速烧写手册》-第8章 TF启动
  • Helm 模板流程控制
  • Kansformer?变形金刚来自过去的新敌人
  • 今晚 19:00 | 从这两个问题入手,带你了解数据要素相关税务问题
  • 《QT实用小工具·五十一》带动画的 CheckBox
  • PDT(police digital trunking )警用数字集群射频指标及测试方法
  • 《尿不湿级》STM32 F103C8T6最小系统板搭建(五)BOOT
  • Java项目:基于SSM框架实现的高校专业信息管理系统设计与实现(ssm+B/S架构+源码+数据库+毕业论文+PPT+开题报告)
  • linux高性能服务器-线程池实现
  • 算法训练营第56天|LeetCode 583.两个字符串的删除操作 72.编辑距离
  • 首页最新 多IP浏览器防关联:如何配置多个独立且稳定的IP地址?
  • 电脑连接公司打印机教程
  • JavaScript 中的 Promise.all
  • 机器视觉_联合编程(二)
  • AUTOCRAWLER : A Progressive Understanding Web Agent for WebCrawler Generation