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

单链表的经典算法OJ

目录

1.反转链表

2.链表的中间节点

3.移除链表元素

———————————————————————————————————————————

正文开始

1.反转链表

typedef struct ListNode ListNode;
struct ListNode* reverseList(struct ListNode* head) {//判空if(head == NULL)return head;//创建3个指针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.链表的中间节点

 typedef struct ListNode ListNode;
struct ListNode* middleNode(struct ListNode* head) {//创建快慢指针ListNode* slow = head; ListNode* fast = head;while(fast && fast->next){slow = slow->next;fast = fast->next->next;}return slow;
}

3.移除链表元素

 //创建新链表,pcur不为val则尾插到新链表中
typedef struct ListNode ListNode;
struct ListNode* removeElements(struct ListNode* head, int val) {//创建一个空链表ListNode* newHead, * newTail;newHead = newTail = NULL;//遍历原链表ListNode* pcur = head;while (pcur){//找值不为val的节点,尾插到新链表中if (pcur->val != val){//链表为空if (newHead == NULL){newHead = newTail = pcur;}else {//链表不为空newTail->next = pcur;newTail = newTail->next;}}pcur = pcur->next;}if (newTail)newTail->next = NULL;return newHead;
}

———————————————————————————————————————————

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

相关文章:

  • 视频网站开发:Spring Boot框架的高效实现
  • 【前端】如何制作一个自己的网站(11)
  • 【Conda】提高 Conda 下载速度与兼容性的完美指南
  • 【Flutter】页面布局:层叠布局(Stack、Positioned)
  • SpringBoot实现的汽车票在线预订系统
  • 集合框架14:TreeSet概述、TreeSet使用、Comparator接口及举例
  • uniapp获取底部导航tabbar的高度(H5)
  • 接口测试 —— 如何测试加密接口?
  • 033 商品搜索
  • 身份证二要素实名认证接口-身份证核验接口-身份证实名API
  • 一次恶意程序分析
  • Javaweb基础-vue
  • 2. MySQL数据库基础
  • java集合进阶篇-《泛型》
  • pytorh学习笔记——cifar10(三)模仿VGGNet创建卷积网络
  • 题目:连续子序列
  • 深入解析:Nacos AP 模式的实现原理与应用场景
  • snmpnetstat使用说明
  • linux线程 | 同步与互斥 | 互斥(下)
  • 2024-10-17 问AI: [AI面试题] 讨论 AI 的挑战和局限性
  • go基础(一)
  • python忽略warnings 的方法
  • 2024年底蓝奏云最新可用API接口列表 支持优享版 无需手动抓取cookie
  • Linux常用命令详细解析(含完整命令演示过程)
  • 《使用Gin框架构建分布式应用》阅读笔记:p101-p107
  • 014集——c#实现打开、另存对话框(CAD—C#二次开发入门)
  • 全面升级:亚马逊测评环境方案的最新趋势与实践
  • Java中的异步编程模型
  • opencv 按位操作
  • 【Bug】STM32串口空闲中断接收不定长数据异常