设计一算法查找链表的中间结点。要求该算法的时间复杂度为O(n),空间复杂度为O(1)

#include <stdio.h>
#include <stdlib.h>
typedef int ElemType;
typedef struct LNode
{  ElemType data;  struct LNode *next;  int Length;
}LNode, *LinkList;
LinkList Create();
void print(LinkList L);
int main()
{  LinkList L = Create();  print(L);  return 0;
}
LinkList Create()
{  LinkList L, p, s;  ElemType e;  L = (LinkList)malloc(sizeof(LNode));L->next = NULL;  p = L;  L->Length = 0;  scanf_s("%d", &e);  while (e != -1)  {   s = (LinkList)malloc(sizeof(LNode));   s->data = e;   p->next = s;   p = s;   scanf_s("%d", &e);L->Length++;  }  p->next = NULL;  return L;
}
void print(LinkList L)
{  LinkList p;  p = L->next;  if (L->Length % 2 == 1)  {   for (int i = 0; i < L->Length / 2; i++)p = p->next;   printf("%d", p->data);  }  if (L->Length % 2 == 0)  {   for (int i = 0; i < L->Length/ 2-1; i++)    p = p->next;   printf("%d %d", p->data,p->next->data);  }
}

设计一算法查找链表的中间结点。要求该算法的时间复杂度为O(n),空间复杂度为O(1)相关推荐

  1. (关于单链表的真题)已知一个带有表头结点的单链表...请设计一个尽可能高效的算法,查找链表中倒数第k个位置的结点。

    真题描述 已知一个带有表头结点的单链表,结点结构为 data next 假设该链表只给出了头指针head.在不改变链表的前提下,请设计一个尽可能高效的算法,查找链表中倒数第k个位置上的结点. 若查找成 ...

  2. 已知一个带有表头结点的单链表,结点结构为 data link 假设该链表只给出了头指针list。在不改变链表的前提下,请设计一个尽可能高效的 算法,查找链表中倒数第k个位置

    分析: 这是一个单链表算法题,题中说要在不改变链表本身的前提下,设计一个尽可能高效的算法,说明时间复杂度.空间复杂度都要尽可能地高效,常数也要尽可能小. 思路: 设置两个指针p和q,指p针在指针q后k ...

  3. linux加密框架 crypto 算法管理 - 算法查找接口 crypto_alg_mod_lookup

    参考链接 Linux加密框架的算法管理(二)_家有一希的博客-CSDN博客 linux加密框架 crypto 算法管理 - 算法查找接口 crypto_find_alg_CHYabc123456hh的 ...

  4. C语言Cruskal算法查找最小生成树(附完整源码)

    C语言Cruskal算法查找最小生成树 Cruskal算法查找最小生成树完整源码 Cruskal算法查找最小生成树完整源码 #include <stdio.h> #include < ...

  5. 已知一个带有表头的单链表,结点结构为data-link,假设该链表只给出了头指针list。在不改变链表的前提下,请设计一个尽可能高效的算法,查找链表中倒数第k个位置上的结点(k为正整数)。

    今天和大家分享一道2009年代码为408的一道真题: 已知一个带有表头的单链表,结点结构为data-link,假设该链表只给出了头指针list.在不改变链表的前提下,请设计一个尽可能高效的算法,查找链 ...

  6. 请设计一个既节省时间又节省空间的算法来找出该链表中的倒数第m个元素

    给定一个单向链表(长度未知),请设计一个既节省时间又节省空间的算法来找出该链表中的倒数第m个元素. 实现这个算法,并为可能出现的特例情况安排好处理措施. 倒数第m个元素"是这样规定的:当m= ...

  7. 算法---查找倒数第k个链表的值

    算法-查找倒数第k个链表的值 代码: link.h #pragma once #define elemType int #include<stdlib.h> typedef struct ...

  8. 【iOS高级资深工程师面试篇】⑪、2022年,金九银十我为你准备了《iOS高级资深工程师面试知识总结》 算法部分 字符串反转-链表反转-有序数组组合-Hash算法-查找两个子视图的共同父视图

    iOS高级资深工程师面试篇系列 - 已更新3篇 UI部分1/3 -UITableView-事件传递&视图响应 UI部分2/3 -图像显示原理-UI卡顿&掉帧 UI部分3/3 -UIVi ...

  9. JavaScript——leetcode算法入门876. 链表的中间结点【双指针专题】

    题目描述 给定一个头结点为 head 的非空单链表,返回链表的中间结点. 如果有两个中间结点,则返回第二个中间结点. 示例 1: 输入:[1,2,3,4,5] 输出:此列表中的结点 3 (序列化形式: ...

最新文章

  1. 办公计算机培训方案,计算机办公软件应用培训教学计划规划方案.docx
  2. COJN 0575 800601滑雪
  3. 日本搞出奇妙充电屋,坐在任意位置都能隔空充电!研究登上Nature子刊
  4. linux的du和df命令,du和df命令都是Linux系统的重要工具
  5. php服务器怎么返回信息,php怎么返回服务器ip地址
  6. 慕课网之JavaScript-confirm
  7. 出栈顺序 与 卡特兰数(Catalan)的关系
  8. 搞懂Java的反射机制
  9. RabbitMq(十六)单机多实例集群搭建步骤介绍
  10. mvvm模式和mvc的区别_MVC,MVVM,MVP是指什么,它们之间有啥区别
  11. 装配标准工时如何计算?详解:装配的标准工时计算方法
  12. excel嵌入动态二维码 含中文
  13. ue怎么转换html格式,UE编辑器UltraEdit怎么格式化代码
  14. java画脸_用Java画人脸
  15. 后端速成JavaScript
  16. ECSHOP问题总结
  17. 如何知道股票里面有庄
  18. 提取、修改、重建deb包
  19. Linux下的打包(tar)、压缩(gzip / bzip2)
  20. 北京现代APP每日问答合集(持续更新)

热门文章

  1. leetcode 1227 python
  2. 7 centos 时钟跟物理机同步_同步FIFO和异步FIFO
  3. PostgreSQL中常见的14个用户安全配置
  4. 深度剖析数仓CN增量备份技术
  5. 华为:与全球180万云与计算开发者共成长,共创行业新价值
  6. Linux神器strace的使用方法及实践
  7. 前端工具webpack4.0各个击破——html部分
  8. 开发者的福利,报名即可领取代金券,赢运动手环
  9. 利用ssh穿越多个跳板机最简单最高效的办法
  10. DevOps组织如何有效地实施MSA