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

单链表习题(对应章节chapter2)

题目1:链表的中间结点

题目来源:leetcode链表的中间结点

第一种思路分析:考虑指针移动到相应的位置来做

 参考代码:位置(/chapter2/c++/middle-link-list-node/lc1.cc)

#include <stdio.h>
extern "C"{
#include <linklist.h>}link_list_node *middle_node(link_list_node *p_head)
{//直接用头结点来保存中间结点的地址if (p_head == NULL){return NULL;}int pos = (p_head->value / 2);//开始移动相应指针,移动到我们想要结点的前一个结点//然后next就是下一个结点for (int i = 0; i < pos; i++){p_head = p_head->next;}return p_head->next;
}int main()
{link_list_node *p_head = create();//插入12345这几个数据insert_elem(p_head, 1, p_head->value);//全部在最后一个位置插入insert_elem(p_head, 2, p_head->value);//全部在最后一个位置插入insert_elem(p_head, 3, p_head->value);//全部在最后一个位置插入insert_elem(p_head, 4, p_head->value);//全部在最后一个位置插入insert_elem(p_head, 5, p_head->value);//全部在最后一个位置插入insert_elem(p_head, 6, p_head->value);//全部在最后一个位置插入//打印一下print_list(p_head);p_head = middle_node(p_head);while (p_head != NULL){printf("%d ", p_head->value);p_head = p_head->next;}//我们要的是中间结点return 0;
}

这里说一下我用到自己之前写的一个单链表的动态库,不会的同学可以参考我在Linux专栏动态库与静态库制作,后面就不在多说了

下面是Lc提交代码

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*/struct ListNode* middleNode(struct ListNode* p_head){//直接用头结点来保存中间结点的地址if (p_head == NULL){return NULL;}//按照lc提交的意思就是//p_head->val返回的不是长度//所以需要我们自己来计算长度int len = 0;struct ListNode *p_node = p_head;while (p_node != NULL){p_node = p_node->next;len++;} len = (len / 2);//开始移动相应指针,移动到我们想要结点的前一个结点//然后next就是下一个结点for (int i = 0; i < len; i++){p_head = p_head->next;}return p_head;}

 运行结果:

文章持续更新中。。。。。。 

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

相关文章:

  • SQL创建新表
  • Python视频剪辑-Moviepy视频尺寸和颜色调整技巧
  • 前端笔记:Create React App 初始化项目的几个关键文件解读
  • 提高工作效率!本地部署Stackedit Markdown编辑器,并实现远程访问
  • visual studio解决bug封装dll库
  • 合肥工业大学自然语言处理实验报告
  • layui laydate实现日期选择并禁用指定的时间
  • scala数组函数合集
  • 软件测试「转行」答疑(未完更新中)
  • 计算机网络---TCP/UDP
  • Docker私有仓库打开2375端口(linux)
  • 底部Taber的抽取
  • Bootstrap中固定某一个元素不随滚动条滚动
  • 时序数据库 IoTDB 发布端边云原生解决方案,有效优化工业互联网数据上传时效与资源消耗...
  • Spring Boot中实现发送文本、带附件和HTML邮件
  • MySQL5.7版本与8.0版本在CentOS系统安装
  • 【gitlab】从其他仓库创建项目
  • 【ARM CoreLink 系列 6 -- DMC-400控制器简介】
  • 在 Azure 中开发云原生应用程序:工具和技巧
  • 【Redis】基础数据结构-字典
  • 平板第三方电容笔怎么样?便宜的ipad触控笔推荐
  • pytorch_神经网络构建3
  • 遗传算法入门笔记
  • 【golang】go 返回参数 以及go中 裸返
  • elasticsearch深度分页问题
  • 32、Flink table api和SQL 之用户自定义 Sources Sinks实现及详细示例
  • Java练习题-用冒泡排序法实现数组排序
  • 【SV中的多线程fork...join/join_any/join_none】
  • 翻译:网站整站翻译 / 网站国际化 / 极简实现
  • 深度森林(deep-forest)安装